简而言之,我正在研究具有列和行的响应式 Web 布局。每个列宽都设置为与预定义的总宽度相关:
列宽/总宽度=宽度%
并且高度是固定的。
现在的问题是,我希望内容宽度是流动的,但边距和填充是固定宽度,如下所示。
代码看起来像这样:
HTML
<body>
<div id="left">Left</div>
<div id="middle">Middle</div>
<div id="right">Right</div>
</body>
CSS
div {
float: left;
padding: 0.5em;
box-sizing: border-box;
width: 33.3333333333333%; height 5em; line-height: 5em; text-align: center;
}
#left {
background-color: red;
}
#middle {
background-color: green;
}
#right {
background-color: blue;
}
http://jsfiddle.net/langoon/Zxn8E/2/
我想到了一些解决方案,但似乎没有一个能满足我的要求:
- 将'box-sizing'设置为'margin-box'。大多数浏览器不支持。
- 使用边框代替边距。以后我可能想要那个边框并设置不同的样式。
- 将每个盒子嵌套在一个外部“div”中。我更喜欢将要处理的 DOM 的元素数量保持在最低限度。
- 按照此处的建议设置负边距 流体列布局,它们之间有固定的像素边距?. 似乎每行都需要一个包装“div”,这可能会给我带来问题。
- JavaScript。不,谢谢。
我是想一边吃蛋糕一边吃,还是有办法做到这一点而没有缺点?