CSS таблицы, обратный порядок отображаемого содержимого - PullRequest
12 голосов
/ 16 июля 2009

Я знаю, что это немного кровоточит, но вот вопрос в любом случае:

Учитывая

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

...

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

... что дает мне прекрасное расположение элементов div'а рядом с #one слева и #two справа.

Можно ли в любом случае поставить #two слева и #one справа, используя display: table-cell; и не меняя порядок делений в HTML?

Я спрашиваю, потому что я хотел бы оставить #one над #two в HTML по причинам SEO, но я бы хотел, чтобы #two был справа от #one по эстетическим соображениям. Я знаю, как это сделать, используя float / абсолютное позиционирование / поля / и т. Д., Но мне было интересно, есть ли способ сделать это, используя более новые свойства отображения таблицы CSS (что мне больше нравится).

Есть мысли?

Ответы [ 2 ]

49 голосов
/ 16 июля 2009

Вы можете (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 голос
/ 16 июля 2015
    <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>

Я использую flexbox. Вы также можете изменить количество делений. Например, поместите больше элементов div с левым классом, тогда они будут размещены слева, даже если они объявлены после.

Я попробовал @Greg пример, но он не работает в IE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...