我需要一个使用CSS而不使用JS或jQuery的跨浏览器解决方案。
所以我有两个股利:

<div class="block1">
  <div class="block2">
    content
  </div>
</div>


我需要block2为block1的全宽。我需要在block2的每侧各留15px的间距。它必须是响应式布局的宽度和高度。 block1必须为100%页面宽度和高度。
我所看到的。 block2页边距有问题。我在block2中没有得到15px的间距。我现在底部有问题。
block1 =背景:红色;
block2 =背景:黑色;
首先,我认为这是一件容易的事,但是到目前为止,我没有找到解决方案。
我试过的
HTML

<body class="body">
    <div class="block1">
        <div class="block2">
            content
        </div>
    </div>
</body>


的CSS

html {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
}
.body {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
}

.block1 {
    width: 100%;
    background:red;
    height: 100%;
    display: block;
    overflow: hidden;
}

.block2 {
    background: #000000;
    min-height: 100%;
    margin: 15px 15px 15px 15px;
    color: #ffffff;
}

最佳答案

以下是两个适合您的示例:

1.如果您不介意它不支持IE 8及以下版本,则可以使用css CALC()计算内部块的最小高度:min-height: calc(100% - 30px);(30为顶部+底部边距)



html, body  {
    left:0;
    top:0;
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
}
.block1 {
    width: 100%;
    background:red;
    height: 100%;
    display: block;
    overflow: hidden;
}
.block2 {
    background: #000000;
    min-height: calc(100% - 30px);
    margin: 15px 15px 15px 15px;
    color: #ffffff;
}

<div class="block1">
    <div class="block2">content</div>
</div>





2. IE 8应该支持的解决方案是:



html, body  {
    left:0;
    top:0;
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
}
.block1 {
    width: 100%;
    background:red;
    height: 100%;
    display: block;
    overflow: hidden;
}
.block2 {
    background: #000000;
    margin: 15px 15px 15px 15px;
    display:block;
    position:absolute;
    bottom:0;
    top:0;
    left:0;
    right:0;
    color: #ffffff;
}

<div class="block1">
    <div class="block2">content</div>
</div>

关于html - 嵌套块的所有边距,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27335043/

10-12 01:56