私の目標は、2つの<div>
sを並べて、両方の<div>
sのコンテンツを上部に並べて表示することです。 2番目の<div>
の長いテキストを最初のテキストの下にラップしたくない。
最後に、2番目の<div>
の幅を設定したくないのは、異なる幅でマークアップが機能する必要があるためです。
サンプルのマークアップは以下および http://jsfiddle.net/rhEyM/ にあります。
[〜#〜] css [〜#〜]
.left-div {
float: left;
width: 100px;
height: 20px;
margin-right: 8px;
background-color: linen;
}
.right-div {
float: left;
margin-left: 108px;
background-color: skyblue;
}
[〜#〜] html [〜#〜]
<div class="left-div">
</div>
<div class="right-div">
My requirements are <b>[A]</b> Content in the two divs should line
up at the top, <b>[B]</b> Long text in right-div should not wrap
underneath left-div, and <b>[C]</b> I do not want to specify a
width of right-div. I don't want to set the width of right-div
because this markup needs to work within different widths.
</div>
2つ目のdivからフロートを削除して機能させました。
Html5の新しい標準であるFlexを使用してみてください。
http://jsfiddle.net/maxspan/1b431hxm/
<div id="row1">
<div id="column1">I am column one</div>
<div id="column2">I am column two</div>
</div>
#row1{
display:flex;
flex-direction:row;
justify-content: space-around;
}
#column1{
display:flex;
flex-direction:column;
}
#column2{
display:flex;
flex-direction:column;
}
これを試してください:( http://jsfiddle.net/TpqVx/ )
.left-div {
float: left;
width: 100px;
/*height: 20px;*/
margin-right: 8px;
background-color: linen;
}
.right-div {
margin-left: 108px;
background-color: Lime;
}
<div class="left-div">
</div>
<div class="right-div">
My requirements are <b>[A]</b> Content in the two divs should line up at the top, <b>[B]</b> Long text in right-div should not wrap underneath left-div, and <b>[C]</b> I do not want to specify a width of right-div. I don't want to set the width of right-div because this markup needs to work within different widths.
</div>
<div style='clear:both;'> </div>
ヒント:
float:left
を使用するだけですonly。height
を使用する本当の理由はありませんが、とにかく...<div 'clear:both'> </div>
を使用することをお勧めします。