次のHTMLのスタイルを設定するのに最適な方法について、ここで専門家のアドバイスを探しています。
<body>
-Some content-
<div class="parent" style="height:50%;">
<div class="child" style="background-color:#FF9999;">An image</div>
<div class="child" style="background-color:#9999FF;">Some text</div>
</div>
</body>
次のように動作する結果を取得するには、次のようにします。
私が取り組んでいる基準は次のとおりです。
- コンテナdiv、.parentはブロック要素であり、ブラウザウィンドウの幅全体を埋めます。
- そこに行く画像の規則性に基づいて、最初/左の内側のdivの幅をピクセル単位で知っていますが、パーセンテージではわかりません。
- 2番目/右の内側のdivの幅がわかりません-ブラウザウィンドウの幅に関係なく、右側のスペース全体を自動的に埋める可変量のテキストが含まれているためです
- 最初の/左のdivの高さは、2番目の/右のdivよりも短い場合、同じ高さまで伸びる必要があります(理由は次のとおりです。最初の/左のdivには、2番目の/右のdivと区別するための右境界線があります、およびこの境界線は.parent divの高さである必要があります。ただし、最初/左のdivが常にマークアップに存在するとは限りません。この場合、境界線は表示されません)。
- JavaScriptのトリックは使えません。
私の経験とWebソースからの支援に基づいて試したソリューション:
Float:float:leftを使用する従来の方法では、最初/左のdivをその兄弟または.parentの(可変)高さまで伸ばすことができないようです。
インラインブロック:.parent {background-color:#999999;} .parent> .child {display:inline-block; vertical-align:top; height:100%;}
display:inline-blockを使用すると、2番目/右のdivのテキストが行全体を埋めるのに十分でない場合に、魅力のように機能するように見えます。ただし、テキストが増えると、2番目/右のdivは外側のコンテナが許可する幅になり、最初の/右のdivの下に折り返されます。
どんな洞察も大歓迎です!