3つのdiv列の下のコンテンツをクリアする方法がわかりません。各div列には、中央にテキストがあるスパンと、スパンの下にテキストエリアが含まれています。問題は、少なくとも私が思うに、divタグがフロートされており、適切にクリアされていないことです。
Firefoxは、最初の列の上の列(私の場合はボタン)の後に次の要素をフロートさせます。私のローカルファイルはInternetExplorerで完全にレンダリングされます(ただし、IEがクリアのために独自の囲みを追加しているためだと思います...それを読んだ場所が見つかりません)。ただし、IEでjsFiddleコードを見ると、textareasは100%の高さを維持していません。jsFiddleはIEのQuirksモードでHTMLをレンダリングしないと想定しています(これが私のローカルファイルとは異なる理由です)。
Holy Grailの記事、w3schoolsの記事、clear :after fixの記事、およびその他のいくつかの記事(div列のレイアウト)を見てきましたが、両方のブラウザーで機能するソリューションを思い付くことができませんでした。
これが私のjsFiddleコードで、これが私のコードです。ご覧のとおり、私のコードには複数のメソッドがあるので、ごちゃごちゃしてすみません。
site.html
<html>
<head>
<link type="text/css" rel="stylesheet" href="site.css" />
</head>
<body>
<div id="top" class="clearfix">
<div class="column">
<span>blah1</span>
<textarea class="text"></textarea>
</div>
<div class="column">
<span>blah2</span>
<textarea class="text"></textarea>
</div>
<div class="column clearfix">
<span>blah3</span>
<textarea class="text"></textarea>
</div>
<div class="clearing"> </div>
</div>
<div id="center">
<span>blah blah blah</span>
<input type="button" value="Button" />
</div>
</body>
</html>
site.css
body, html {
height: 100%;
width: 100%;
}
body {
padding: 0;
border: 0;
margin: 0;
}
#top {
height: 40%;
display: block;
width: 100%;
float: left;
}
.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.column {
width: 33%;
float: left;
height: 100%;
text-align: center;
}
.clearing {
height: 0;
clear: both;
}
.text {
width: 100%;
height: 100%;
}
#center {
clear: both;
}
を追加しようとしたことにも注意してくださいoverflow: hidden (and auto)
。これで問題は解決しますが、テキストエリア全体を表示したいのですが、非表示にしたりスクロールさせたりしないでください。任意の提案やアイデアをいただければ幸いです。