Рассмотрим следующую структуру HTML с 2 столбцами:
<div id="container">
<div class="left">some text</div>
<div class="right">some text</div>
</div>
CSS:
#container { overflow: hidden; }
.left { float: left; width: 200px; background: red; }
.right { overflow: hidden; background: green; }
Тот же код в jsFiddle - http://jsfiddle.net/vny2H/
Итак, у нас есть 2колонны.Ширина левого столбца фиксирована, ширина правого - жидкая.Если мы удалим левый столбец из html, правый столбец растянется до 100% ширины родительского #container.
Вопрос: можем ли мы изменить порядок левого и правого столбцов?(Мне это нужно для SEO)
<div id="container">
<div class="right"></div>
<div class="left"></div>
</div>
Спасибо.
Добавлено
Есть один интересный способ достичь того, что я хочу, но фиксированный столбец становится несъемным,Метод основан на отрицательной марже.http://jsfiddle.net/YsZNG/
HTML
<div id="container">
<div id="mainCol">
<div class="inner">
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
</div><!-- .inner end -->
</div><!-- .mainCol end -->
<div id="sideCol">
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
</div><!-- .sideCol end -->
</div><!-- #container end -->
CSS
#container { overflow: hidden; width: 100%; }
#mainCol { float: right; width: 100%; margin: 0 0 0 -200px; }
#mainCol .inner { margin: 0 0 0 200px; background: #F63; }
#sideCol { float: left; width: 200px; background: #FCF; }
Таким образом, у нас есть 2 способа:
- Использование «float» дляисправлена колонка и «переполнение: скрыто» для жидкости.Фиксированная колонка становится съемной.Но ликвидный идет вторым в коде.
- Использование отрицательного поля.Жидкий столбец идет первым в коде.Но фиксированный нельзя удалить.
Есть ли третий способ, когда фиксированный столбец является съемным, а жидкий - первым в коде?
Добавлено
Половина решения была предложена @lnrbob.Основная идея - использование табличных div-ов.http://jsfiddle.net/UmbBF/1/
HTML
<div id="container">
<div class="right">some text</div>
<div class="left">some text</div>
</div>
СSS
#container { display: table; width: 100%; }
.right { display: table-cell; background: green; }
.left { display: table-cell; width: 200px; background: red; }
Этот метод подходит, когда фиксированный столбец размещается справа на сайте.Но если нам это нужно слева - кажется, это невозможно сделать.