浮动、定位、BFC、边距合并

2017-07-16  本文已影响0人  basd1995

浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响?

特征
影响

如果父容器的子元素都是浮动元素,如果父容器没有定义高度,那么父容器会失去高度即父容器高度坍塌),在浮动元素之外。
对于普通元素,普通元素会感知不到浮动元素当然存在,如果宽高合适,后面的元素会占据浮动元素原来的位置
对于文字来说,能感知到浮动元素的存在,如果位置足够,就能够实现文本绕图的效果

清除浮动指什么? 如何清除浮动? 两种以上方法

方法一:使父元素形成新的BFC,可以使用

overflow:hidden/auto/scroll
display:inline-block
float:left/right等等

方法二:使用伪元素清除浮动,如

.clearfix{zoom:1;}
.clearfix:after{
content:"";
display:block;
visible:hidden;
clear:both;
}

然后在需要清除浮动的元素进行调用。

有几种定位方式,分别是如何实现定位的,参考点是什么,使用场景是什么?

z-index 有什么作用? 如何使用?

position:relative和负margin都可以使元素位置发生偏移?二者有什么区别

BFC 是什么?如何生成 BFC?BFC 有什么作用?举例说明

overflow:hidden/auto/scroll
display:inline-block
float:left/right

作用:
(1) 解决margin重叠问题,在同一个BFC中,相邻元素之间的边距会合并,如果把这两个元素分别放在两个BFC中,name他们的边距就不会合并。一般应用于嵌套关系。
(2)清除浮动。BFC不会重叠浮动元素。

在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例

  • html:

<body>
<div class="parent">
<div class="child">绿色</div>
</div>
</body>

  • css:
    body{
    width:300px;
    border:1px solid red;
    }
    .parent{
    background:yellow;
    margin-top:100px;
    }
    .child{
    background:green;
    margin-top:50px;
    }

外边距出现合并
我们为父元素添加display:inline-block,这时候就会形成一个新的BFC,边距不会合并。

.parent{
background:yellow;
display:inline-block;
margin-top:100px;
}

代码

实现如下alert效果,链接
实现如下表单效果, 链接
实现如下表单效果, 链接
实现如下导航栏效果,效果

上一篇 下一篇

猜你喜欢

热点阅读