2009-07-16 15 views
11

の反転順序は、私は、これは少し出血エッジである知っているが、ここで問題は、とにかくだ:CSSテーブル、表示されるコンテンツ

<div id="one">First Div</div> 
<div id="two">Second Div</div> 

を考えると...

#one, #two { display: table-cell; } 

を..これは左側の#oneと右側の#2のdivの素敵な並置を私に与えてくれます。

display: table-cell;を使用して、左側に#two、右側に#oneを配置し、HTMLのdivの順序を変更しないでください。

私はSEOの理由で#twoを#2上に保ちたいと思っていますが、審美的理由から#twoを#oneの右側にしたいと思います。私は浮動小数点/絶対位置/余白/等を使用してこれを行う方法を知っていますが、新しいCSSテーブルの表示プロパティを使用して行うことができる方法があるかどうかは疑問でした。

どのような考えですか?

+0

新しいCSS機能は素晴らしいですが、クロスブラウザ対応のソリューションを使用することをお勧めします。最初の要素または両方の要素の 'float:right;'は要素の水平方向を逆転させ、他の要素は位置、幅、高さの影響を受けます。 – Blixt

+1

私はこれを認識していますが、このサイトでは、新しいブラウザを積極的にターゲットにして、新しいテクノロジー(HTML5とCSS3)を採用する余裕があります。私はこれを行うための既存の方法を知っています。私は新しい方法を理解しようとしていました。 – neezer

答えて

50

することはでき(AB)は、先に悪テキスト方向警告を使用します。

<div id="container"> 
    <div id="one">First Div</div> 
    <div id="two">Second Div</div> 
</div> 

<style> 
    #container { direction: rtl; } 
    #one, #two { display: table-cell; direction: ltr;} 
</style> 
+1

Chromeでテスト済み – Greg

+0

賢明なソリューション=)もっと多くのブラウザでテストしましたか?あなたはhttp://www.browsershots.org/ – Blixt

+0

を通じてそれを実行することができます。簡単なソリューション。興味深い; –

2
<div class="container"> 
     <div class="middle" style="background-color: blue;"> 
      <h4>Left Col placed middle</h4> 
      <p>...</p> 
     </div> 
     <div class="right" style="background-color: red;">   
      <h4>Middle Col placed right side</h4> 
      <p>...</p> 
     </div> 
     <div class="left" style="background-color: yellow;"> 
      <h4>Right Col placed left side</h4> 
      <p>...</p> 
     </div> 
    </div> 

<style type="text/css"> 
    .container { 
     display: flex; 
    } 
    .container > .left{ 
     order:1; 
    } 
    .container > .middle{   
     order:2; 
    } 
    .container > .right{ 
     order:3; 
    } 

    .left, .middle, .right { 
     display:table-cell;   
    } 
</style> 

私はフレキシボックスを使用しています。 divの数を変更することもできます。例えば、左のクラスでより多くのdivを置くと、後で宣言されても左側に配置されます。

@Gregサンプルを試しましたが、IEでは動作しません。

関連する問題