我想要一个列布局,其中文本正文的最大宽度应为30em,但它应尽可能宽(最多30 em)。
左边距(文本正文左边缘和浏览器窗口左边缘之间的空白区域)最多应为6em,必要时缩小(在较小的屏幕上)。
右边距应使用可用的剩余空间。
我已经看到了这个问题:I need a max-margin CSS property, but it doesn't exist. How could I fake it? - 但我不明白如何在我的案例中使用它。这就是我尝试过的(http://jsfiddle.net/y2rd8/1/)
<div class="left"></div>
<div class="right"></div>
<div class="body">
A wonderful serenity has taken possession of my entire soul,
</div>
<div style="clear: both;" />
和
.left, .right {
background: gray;
}
.left {
float: left;
max-width: 6em;
}
.right {
float: right;
width: auto;
}
.body {
max-width: 30em;
border: 1px solid green;
}
答案 0 :(得分:3)
我会选择你所拥有的东西,但可能会离开浮动并完全消除.left
和.right
,然后使用媒体查询来管理左边距:
.body {
max-width: 30em;
border: 1px solid green;
margin-right: 1em;
}
@media screen and (max-width: 480px) {
.body {
margin-left: 2em;
}
}
@media screen and (min-width: 481px) {
.body {
margin-left: 4em;
}
}
答案 1 :(得分:0)
使用内容最大宽度加上边距最大宽度两倍的媒体查询。
.body {
max-width: 30em;
border: 1px solid green;
margin: auto;
}
/* 42em = 30 + (2*6) */
@media screen and (min-width: 42em) {
.body {
margin-left: 6em;
}
}