实现一个自适应布局,效果图和HTML代码如下:
<div class=”parent”>
<div class=”side”>侧栏</div>
<div class=”main”>主栏</div>
</div>
要求两栏间距为10px。
css代码如下:
.parent{font-size:22px;font-family:"微软雅黑";color:#fff;text-align: center;outline: 2px solid yellow;position: relative;line-height: 110px;}
.side{background-color:#c00000;width:200px;height:110px;}
.main{background-color:#4f81bd;position: absolute;right:0;top: 0px;bottom: 0px;left: 210px}
通过设置主栏div[class=main]的left:210,让它距离它父元素div[class=parent]左边框210px.
但是在这里,我突发奇想的尝试了另外一种情况:
.main{background-color:#4f81bd;position: absolute;right:0;top: 0px;bottom: 0px;left: 200px;margin-left: 10px}
我将left:210px换为了left:200px和margin-left:10px,居然实现了一样的效果:
·仅仅设置left:200px,如下图:
·在设置了left:200px的基础上又设置了margin-left:10px,如下图:
问题:div[class=main]在设置了position:absolute之后不是从文档流中脱离出来了吗?为何还可以操纵左外边距(margin-left)?甚至还真的和左边,在普通文档流中的div[class=side]的元素有10px的左边距?
希望各位大大不吝赐教!小子谢过~
是脱离了文档流,但是margin-left是对他所在的层的(假设不同的流就是不同的层)所以 margin 是会起作用的。你可以设置side的margin 对main是没有影响的(测试他们是否在同一个层)
还有 absolute元素设置 上下左右值的时候 选择其中两个就好 比如上左,下右,下左,上右其中一个就好,