我要疯了,试图让以下布局正确:
- 左 div 具有固定宽度(可能多个 div 并排放置)
- 具有自动宽度的中心 div(占用剩余空间)
- 具有固定宽度的右 div(可能多个 div 并排放置)
- 中心 div 和第一个邻居之间应该存在一个边距,无论是左边还是右边
HTML
<div class="container">
<div class="all left">
Left1
</div>
<div class="all left">
Left2
</div>
<div class="all center">
Center
</div>
<div class="all right">
Right1
</div>
<div class="all right">
Right2
</div>
</div>
CSS
.container {
display: table;
position: relative;
width: 100%;
height: 100px;
border-spacing: 5px;
}
.all {
display: table-cell;
border: 1px solid #333;
margin: 5px;
}
.left {
width: 45px;
}
.right {
width: 45px;
}
.center {
width: auto;
}
小提琴
http://jsfiddle.net/ozrentk/VdryG/3/
但是,无论我尝试什么(例如放入border-spacing: 0px
左或右 div margin: 0
、、边框折叠),我的所有边距最终都相同。
为了简化它,我想要这个:
+--------------------------------------------------------------+
|+-----++-----+ +------------------------------++-----++-----+|
|| || | | || || ||
|| || | | || || ||
|| || | | || || ||
|| || | | || || ||
|| || | | || || ||
|| || | | || || ||
|| || | | || || ||
|| || | | || || ||
|+-----++-----+ +------------------------------++-----++-----+|
+--------------------------------------------------------------+
但目前我有这个:
+--------------------------------------------------------------+
| |
| +----+ +----+ +--------------------------+ +----+ +----+ |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| +----+ +----+ +--------------------------+ +----+ +----+ |
| |
+--------------------------------------------------------------+
如何控制此布局中的各个边距?
附言
- 我不想要将浮点数与非浮点数混合的解决方案,因为它最终会出现布局问题,请参阅此
- 我不想要使用 css calc 的解决方案,因为它是实验性的
- 我不想要 JS 解决方案,因为我认为 CSS 应该用于这种布局并且会导致闪烁;此外,用户可以禁用 JS