3 つの列 (div は左に浮いている) があり、それぞれの幅は 30% プラス 3% のパディングです。各列には幅 100 ピクセルの画像が含まれます。各画像の横に、その横にタイトル/説明を入れたいと思います。これは、その列の残りのスペースを占有します.
CSS で数学を実行できないことはわかっているので、次のようなことはできませんwidth: 33% - 100px;
(できれば素晴らしいことです)。JavaScript で判断できましたが、可能であれば、このタスクに JS を使用しないようにしています。誰かが私がそうする必要のないより良いデザインを思い付くことができるかどうかを知りたい.
このフィドルで私の例を見てください。
ここに私のHTMLがあります:
<div class="column3 item" style="border-right:1px dotted #CCC;">
<img src="images/items/item1.jpg" />
<div>
<b>Item 1</b>
<p>Some kind of description about the item goes here.</p>
</div>
</div>
<div class="column3 item" style="border-right:1px dotted #CCC;">
<img src="images/items/item2.jpg" />
<div>
<b>Item 2</b>
<p>Some kind of description about the item goes here.</p>
</div>
</div>
<div class="column3 item clearfix">
<img src="images/items/item3.jpg" />
<div>
<b>Item 3</b>
<p>Some kind of description about the item goes here.</p>
</div>
</div>
そして関連する CSS:
.column3 {
float: left;
width: 30%;
height: 100px;
padding: 0 1.5%;
}
.column3 > div {
float: left;
margin-left: 15px;
}
.column3 > div > p {
display: inline-block;
}
.item img {
float: left;
width: 100px;
height: 100px;
}
したがって、残りのスペースを占めるように内側の div の幅を設定する方法を理解する必要があります。resize
JSでこれを行うことができることは知っていますが、ユーザーがページのサイズを変更すると、その幅が自動的に調整され(JSイベントリスナーを呼び出さなくても)、すべてのスタイリングが保持されるように、CSSソリューションが本当に好きです複雑さを軽減します。
このコードはどれも決まったものではないので、より良い HTML/CSS 構造を提案できれば、それは完全に受け入れられる解決策です。