2012-01-24 10 views
2

Flex/MXMLのようなHTML/CSSを使用する方法があるのだろうかと思っています。つまり、MXMLでは、HBox、VBox、Spacerがグローバルに使用され、その動作は予測可能です。しかし、HTML/CSSでは多くの浮動小数点数を使用し、常に「隠れた驚き」を持っています。HTML/CSS Spacer(Flexのようなもの)

私はどうなるのFlex/MXMLで

:HBoxのは並んで、その中にすべての要素を配置し、スペーサーは見えないです:

<hbox width="100%"> 
    <button label="Button A" /> 
    <spacer width="100%" /> 
    <button label="Button B" /> 
    <button label="Button C" /> 
</hbox> 
  • 私はこのコードを説明フレックスわからない場合素子; 100%のスペーサーは親(HBox)と同じ幅を持たず、残りのスペースを埋める。これは、Aが左に整列し、他の2つが右に整列することを意味します。

HTML/CSSでは、ボタンBとCを右に浮かべています。私はまた、最終結果にボタンの順序を同じにする必要があります。それに、私は、おそらく、以下の何ものもうんざりすることのないように、 "clear:both"という空白のタグをつけるでしょう。

HTML/CSSで同じ機能を使用する方法はありますか? .HBox .VBox .Spacer CSSクラスを作成し、javascriptを使用できない場合、これは素晴らしいことです。

ありがとうございます。

+0

Flexでは「スペーサー」が使用されますか? Eww。 (「スペーサー」とは、HTMLレイアウトを扱うための、古風な方法です。悲しい/驚いた/おそらく、Flexが使用していることに驚くことはありません) –

+0

おそらく正しいでしょう。しかし、HTML + CSSではその方法がより厄介です。例えば:floatは、テキストを含む画像の場合にのみ使用してください。上記のテキストと同じ結果を得るためにコードを書きました。http://jsfiddle.net/wEAay/1/を確認してください。MXMLコードははるかにクリーンで客観的ではありませんか? – eric

+1

スペーサーは、HTML、CSS、およびJSのMVC構造を解除します。 – zzzzBov

答えて

2

私はそれのスタイルをCSSを使用すると、マークアップ

<div class="formline"><!-- kind of like your hbox --> 
    <div class="buttongroup" id="group1"> 
     <button label="Button A"> <!-- of course, that's usually input type="submit" or something. --> 
    </div> 
    <div class="buttongroup" id="group2"> 
     <button label="Button B"> 
     <button label="Button C"> 
    </div> 
</div> 

次のようなものを使用して、これに似た何かをします。 私はgroup1を左に、float group2を右に浮かべています。囲んでいるフォームラインには、フローティングが含まれています。ボタンは正しい順序で表示されますが、逆にする必要はありません。

これは論理的/構造的なマークアップであり、さまざまなスタイルにすることができます。それはプレゼンテーションのためだけではありません。

"group1"、 "group2"のようなものではなく、私がやっていることに応じて分かりやすい名前を使います。

+1

もっと良い解決策はありますか? Check:http://jsfiddle.net/wEAay/1/ – eric

+0

@エリック - 私はあなたのフィドルを見ました、それは本質的に私がしていることです。私のフォーム構造では、すべての "formline"の後に 'clear:both'クリーンナップを持つことができる_something_があるので、余分な空のdivは必要ありません。 「フォームライン」自体は明確で、最も一般的なケースはフォームラインとそれに続く別のフォームラインです。 –

+0

私たちのソリューションは同じです。 HTML/CSSの面白いが良い経験則は、それがうまくいかない場合はdivを追加するということです。何がひどいが、ちょっとした作品です。構文ライトを保持したい場合は、JSを使用してページの一部を置き換えることができます。 – Parris

0

トップレベルのdivにhboxという名前のクラスを与え、そのサブアイテムをターゲットにすることができます。例:http://jsfiddle.net/soparrissays/WJ2Lk/4/ HTML:

<div class="hbox"> 
    <input type="button" value="Button A" class="left-button" /> 
    <input type="button" value="Button C" /> 
    <input type="button" value="Button B" /> 
    <div class="clear"></div> 
</div> 

スタイル:

.hbox { 
    margin-top:45px; 
} 

.hbox input { 
    float: right; 
} 

.hbox .left-button{ 
    float:left; 
} 

.clear{ 
    clear:both; 
} 

button on the left, 2 on the rightこれはあなたが探しているものですか?

+0

それは私にとってはうまくいかなかった。確認してもよろしいですか? http://jsfiddle.net/V5dCf/2/ – eric

+0

私は*が壊れていると思う。あなたはbrを浮かせる必要はありません。ここに私が作った新しいフォークがあります:http://jsfiddle.net/soparrissays/WJ2Lk/。私はまた、上記の私の答えで画像を掲載しました。あなたが望んでいたものの写真を投稿した場合にも、それは役に立ちます。ボタンは、あなたが知っているように入力を行います。 – Parris

+0

エリックは左右に隙間をあけて左右に並んでいます。 Flexの ''は、線を埋めるために必要に応じて展開し、兄弟を左右に押し出すための「柔軟な空間」を提供します。 –

関連する問題