Как создать два столбца на веб-странице?
Я хочу, чтобы на моей веб-странице было два столбца. Для меня простой способ сделать это - использовать таблицу:
<table>
<tr>
<td>
Content of the first column.
</td>
<td>
Content of the second column.
</td>
</tr>
</table>
Мне нравится это решение, потому что, прежде всего, он работает (он дает именно то, что я хочу), он также очень прост и стабилен (у меня всегда будет два столбца, независимо от того, насколько велико мое окно). Легко контролировать размер и положение таблицы.
Однако я знаю, что людям не нравится табличный макет, и, насколько я знаю, они используют div и css. Поэтому я хотел бы также попробовать этот подход. Может ли кто-нибудь помочь мне в этом?
Я хотел бы иметь простое решение (без трюков), которое легко запомнить. Он также должен быть стабильным (чтобы случайно не случилось, что один столбец находится под другим или перекрывается или что-то в этом роде).
Ответы
Ответ 1
Я рекомендую посмотреть эту статью
http://www.456bereastreet.com/lab/developing_with_web_standards/csslayout/2-col/
см. 4. Поместите столбцы бок о бок специальные
Чтобы обе колонки (#main и #sidebar) отображались бок о бок, мы плаваем их, один влево, а другой вправо. Мы также указываем ширину столбцов.
#main {
float:left;
width:500px;
background:#9c9;
}
#sidebar {
float:right;
width:250px;
background:#c9c;
}
Обратите внимание, что сумма ширины должна быть равна ширине, указанной на шаге 3 на #wrap.
Ответ 2
Я согласен с @haha на этом, по большей части. Но есть несколько проблем, связанных с перекрестным браузером, с использованием "float: right" и, в конечном итоге, может дать вам больше головной боли, чем вы хотите. Если вы знаете, какими будут ширины для каждого столбца, используйте float: слева на обоих и избавите себя от проблемы. Еще одна вещь, которую вы можете включить в свою методологию, - это построить классы столбцов в вашем CSS.
Итак, попробуйте что-то вроде этого:
CSS
.col-wrapper{width:960px; margin:0 auto;}
.col{margin:0 10px; float:left; display:inline;}
.col-670{width:670px;}
.col-250{width:250px;}
HTML
<div class="col-wrapper">
<div class="col col-670">[Page Content]</div>
<div class="col col-250">[Page Sidebar]</div>
</div>
Ответ 3
В принципе вам нужно 3 divs. Сначала как wrapper
, второй как left
и третий как right
.
.wrapper {
width:500px;
overflow:hidden;
}
.left {
width:250px;
float:left;
}
.right {
width:250px;
float:right;
}
Пример того, как сделать 2 столбца http://jsfiddle.net/huhu/HDGvN/
CSS Cheat Sheet для справки
Ответ 4
Я нашел настоящую классную сетку, которую я также использую для столбцов. Проверьте Простую сетку. С помощью этого CSS вы можете просто использовать:
<div class="grid">
<div class="col-1-2">
<div class="content">
<p>...insert content left side...</p>
</div>
</div>
<div class="col-1-2">
<div class="content">
<p>...insert content right side...</p>
</div>
</div>
</div>
Я использую его для всех моих проектов.
Ответ 5
Простым и лучшим решением является использование таблиц для макетов. Ты делаешь это правильно. Существует несколько таблиц причин.
- Они работают лучше, чем CSS
- Они работают во всех браузерах без суеты.
- Вы можете легко отлаживать их с помощью атрибута border = 1