質問
テストサイトのデザインで困っています。doctype 行を使用せずに IE で HTML ページを開くと、好みどおりにレンダリングされますが、FF ではレンダリングされません (特に、パディングの解釈方法のため)。doctype 行を追加すると、ページは約 230 ピクセルの高さに圧縮されます。私の目的は、高さをページの最大高さに設定することです。私のファイルは次のとおりです。
*インデックス.html*
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" media="screen" href="stylesheet.css" />
<!--[if IE]>
<style type="text/css">
body {
text-align: center;
/* Remove padding: */
padding: 0;
}
#container {
/* Mind the box model in IE.. */
height: 100%;
}
</style>
<![endif]-->
</head>
<body>
<!--[if IE]><div id="container"><![endif]-->
<div class="container">
<div class="header">
<h1>Logo</h1>
</div>
<div class="nav widget-header ">
<!-- main nav -->
<a href=""><div class="nav-button state-default " ><img src="a.jpg" alt="a" /></div></a>
<a href=""><div class="nav-button state-default " ><img src="b.jpg" alt="b" /></div></a>
<a href=""><div class="nav-button state-default " ><img src="c.jpg" alt="c" /></div></a>
<a href=""><div class="nav-button state-default " ><img src="d.jpg" alt="d" /></div></a>
<a href=""><div class="nav-button state-default " ><img src="e.jpg" alt="e" /></div></a>
</div >
<div class="content">
<!--content area-->
<p>content</p>
</div>
<div class="footer">
<!-- footer -->
<p>© Copyright</p>
</div>
</div>
<!--[if IE]></div><![endif]-->
</body>
</html>
* スタイルシート.css *
/* reset */
html, body, div, span,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
img, ins, kbd, q, s, samp,
sbutton_cl, strike, strong,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-size: 100%;
}
.body{
line-height: 1;
text-align: center;
}
.widget-header {
background:#333333 url(images/bg-state-default.png) repeat-x scroll 50% 50%;;
border:1px solid #333333;
color:#FFFFFF;
font-weight:bold;
}
.state-default {
background: #CC0000 url(images/button-state-default.png) repeat-x scroll 50% 50%;
border:1px solid #333333;
color:#FFFFFF;
font-weight:bold;
font-size: 1em;
outline-color:-moz-use-text-color;
outline-style:none;
outline-width:medium;
}
.container {
border: 1px solid #999999;
margin: 0 auto;
width: 800px;
height: 100%;
background-color:#999999;
}
.header {
border: 1px solid #999999;
height:10%;
margin-top: 0;
padding: 10px;
}
.nav{
border: 1px solid #999999;
height:10%;
margin-top: 2%;
padding: 10px;
text-align: center;
vertical-align: middle;
}
.nav-button {
float: left;
height: 100%;
margin-left: 3px;
overflow: hidden;
width: 150px;
}
.content{
border: 1px solid #999999;
height:60%;
margin-top: 4%;
padding: 10px;
background-color:#FFFFFF;
}
.footer{
border: 1px solid #999999;
height:10%;
margin-top: 4%;
padding: 10px;
text-align: center;
vertical-align: middle;
background-color: #FFFFFF;
}
私が最終的にやろうとしているのは、固定幅とパーセンテージベースの高さのデザインであり、子 div もパーセンテージベースで親に配置されます(これがさまざまな画面解像度に対処する正しい方法であると信じています)。
誰かが私を助けてくれれば、とても感謝します。
解決 3
便利でしたが、私は、パーセントベースのデザインを持っていると思いますので、不完全。 Daveの答えは、詳細なガイドラインのようなものです。私の問題を解決する最善の方法はこれに似たものです。 http://matthewjamestaylor.com/blog/perfect-3-column.htm
今私の問題が解決され、あなたの助けに感謝します。
他のヒント
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Sandbox</title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<style type="text/css" media="screen">
*{margin:0;padding:0;}
#wrapper { background:red; }
html,body{height:100%;}
#wrapper{min-height:100%;}
</style>
<!--[if IE 6]><style>
#wrapper { height:100%; }
</style><![endif]-->
</head>
<body>
<div id=wrapper>
<p>Hello from JS Bin</p>
<p id="hello"></p>
</div>
</body>
</html>
使用している Explorer のバージョン (6 以外) は明らかではありませんが、 min-height
と読まれます height
バージョンによっては...
ただし、これは HTML/CSS を構築するためのプロフェッショナルな (そして最も簡単な) 方法です。
HTML を検証します (無効な HTML は予期せぬ形でブラウザを混乱させる可能性があるため、重要です!)
FF で好きなように動作させ、見た目を変えましょう。
IE6 と (必要に応じて) IE7 および 8 の条件付きコメントを追加します。
IE 6 では、パディングなどを覚えておいてください。は 追加されていない ボックスに変換されるため、幅または高さが減少します。また、特定の CSS プロパティを持たない一部の要素。特定の幅や高さがない (または auto
)、 しないでください IEで「haslayout」をトリガーする.
これで問題が直接解決されたわけではないかもしれませんが、問題の解決に役立つことを願っています。