我想在10px
div的两边添加#in
的空格,如下所示:
我有这段代码 - live demo :
HTML
<div id="out">
<div id="in"></div>
</div>
CSS
#out {
width: 700px;
height: 40px;
background: lightblue;
position: relative;
}
#in {
position: absolute;
width: 100%;
height: 20px;
top: 10px;
background: white;
margin: 0 10px;
}
答案 0 :(得分:2)
否calc()
,否box-sizing
。由于元素位于absolute
,因此您可以将其left
/ right
偏移属性设置为10px
,而不是指定明确的width
和margin
在它的一边:
<强> Example Here 强>
#in {
position: absolute;
height: 20px;
top: 10px;
left: 10px;
right: 10px;
background: white;
}
答案 1 :(得分:1)
答案 2 :(得分:1)
解决方案1:只是填充
您可以大大简化CSS:
只需指定外部div的大小即可。添加box-sizing: border-box
以防止填充影响div的宽度。
#out {
width: 700px;
padding: 10px;
box-sizing: border-box;
background: lightblue;
}
其他div无需定位。只要给它一个高度,它就会自动拉伸另一个div:
#in {
height: 20px;
background: white;
}
http://codepen.io/anon/pen/yICdF
解决方案2:使用边框
如果您的目标是获得蓝色边框,则根本不需要两个div。那个怎么样:
#out {
width: 700px;
}
#in {
height: 20px;
border: 10px solid lightblue;
}
当然,在这种情况下你不需要两个div。只需完全删除#out并将width
属性移动到#in。