HTML で任意のコンテンツ (フォーム要素、テキスト、画像) をレンダリングする必要があります。レイアウトに関しては、XAML の「スタック パネル」の概念は、私が探しているものに近いものです。縦にレイアウトしたいコンテンツもあれば、横にレイアウトしたいコンテンツもあります。したがって、HTML を次のようにしたいと考えています。
<div class="stack-vert">
<div class="stack-vert">
<div class="content">Vert 1</div>
<div class="content">Vert 2</div>
</div>
<div class="stack-horz">
<div class="content" style="width: 50px; height: 75px;">Horz 1</div>
<div class="content" style="width: 50px; height: 50px;">Horz 2</div>
<div class="content" style="width: 100px; height: 200px;">Horz 3</div>
<div class="stack-vert">
<div class="content">Horz 4, Vert 1</div>
<div class="content">Horz 4, Vert 2</div>
</div>
</div>
<div class="stack-vert">
<div class="content">Vert 3</div>
<div class="content">Vert 4</div>
</div>
</div>
ハードコーディングされた幅と高さは、さまざまなサイズのコンテンツをシミュレートするためのものです。水平、垂直の 1 つのレベルを正しくレイアウトする CSS があります。
DIV.stack-vert
{
border: solid thick red;
}
DIV.stack-horz
{
border: solid thick blue;
}
DIV.content
{
padding: 5px;
background-color: grey;
margin: 5px;
}
DIV.stack-horz DIV.content
{
display: inline-block;
}
この HTML と CSS は次のようにレンダリングされます。
ご覧のとおり、私が達成したいのは、「Horz 4, Vert 1」と「Horz 4, Vert 2」が「Horz 3」の右側にレンダリングされることですが、垂直方向のスタックになります。ただし、ブロックのスタック垂直表示のため、これは発生していません。
HTML / CSS を使用して任意のコンテンツ セクションのレイアウトのような「スタック パネル」を実現するにはどうすればよいですか?
注:理想的には、「生の」HTML / CSSを使用してこれを解決したいのですが、jQueryなどのフレームワークベースのソリューションを検討します.
編集#1:@Aequanoxの答えは近いですが、IE 9をサポートしていません。ほとんどのユーザーがそのブラウザを使用しているため(内部アプリです)、IE 9のサポートは不可欠です。