css 2 макет столбца
У меня есть базовый макет CSS с двумя столбцами, CSS выглядит
#sidebar {
width:100px;
}
#main {
margin-left:100px;
}
И некоторые образцы HTML
<div id="content">
<div id="sidebar">some sidebar content</div>
<div id="main">some main content</div>
</div>
Это работает, но кажется повторяющимся и подверженным ошибкам, что ширина боковой панели должна соответствовать значению поля слева. Есть лучший способ сделать это?
3 ответа
Решение
Вы можете использовать float
собственность на #sidebar
:
#sidebar {
width:100px;
float: left;
}
Однако, используя вышеуказанный метод, если содержание #main
заставляет его высоту расширяться ниже #sidebar
, он будет завернут под боковую панель. Чтобы избежать этого, используйте display:table-cell
имущество:
#sidebar, #main {
display: table-cell;
}
CSS
#sidebar { width:100px; float: left; }
#main { float: right; }
HTML
<div id="content">
<div id="sidebar">my stuff</div>
<div id="main">some main content</div>
<div style="clear:both;"></div>
</div>
Я рекомендую 960.gs или BlueprintCSS для стилей basic-html/css.
Вы можете вложить sidebar
внутри main
дающий main
отступы слева и sidebar
A -ve маржа.
#content{
width: 100%;
}
#sidebar, #main{
float: left;
display: block;
}
#sidebar{
width: 100px;
background-color: orange;
margin-left: -100px;
}
#main{
padding-left: 100px;
background-color: green;
width: 100%;
}
<div id="content">
<div id="main">
<div id="sidebar">some sidebar content</div>some main content
</div>
</div>
Вот рабочая демка.