浮动定位BFC边距合并

2017-09-12  本文已影响0人  饥人谷_一叶之秋

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

任务10-1.png
任务10-2.png
任务10-3.png

3.普通元素因为感知不到浮动元素,所以浮动元素不会对普通元素造成影响,但是有可能会被浮动元素覆盖。
4.因为文字可以感知到浮动元素,所以文字所在行框因为浮动元素的挤压而缩短,从而围绕浮动元素排列。

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

  1. 使用带有clear属性的空元素:
    在浮动元素后使用一个空元素如<div class="clear"></div>,并在CSS中赋予.clear{clear:both;}属性即可清理浮动。亦可使用<br class="clear" />或<hr class="clear" />来进行清理。然而这个方法需要添加大量无语义的html元素。
    2.使父容器形成BFC:
    float为 left|right
    overflow为 hidden|auto|scroll
    display为 table-cell|table-caption|inline-block
    position为 absolute|fixed
    然而使用BFC使用float的时候会使父容器长度缩短,而且还有个重要缺陷——父容器float解决了其塌陷问题,那么父容器的父容器怎么办?难道要全部使用folat吗(确实有这种布局方式倒是)。BFC的几种方式都有各自的问题,overflow属性会影响滚动条和绝对定位的元素;position会改变元素的定位方式,这是我们不希望的,display这几种方式依然没有解决低版本IE问题。

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

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

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

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

  1. 清除内部浮动
任务10-4.png

生成BFC,就能够清除浮动了

任务10-5.png

2.防止垂直 margin 重叠: Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生重叠。我们可以在p外面包裹一层容器,并触发该容器生成一个BFC。那么两个P便不属于同一个BFC,就不会发生margin重叠了。

任务10-7.png

3.BFC作用:自适应两栏布局

任务10-8.png

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

任务10-9.png

八.代码

代码一
代码二
代码三
代码四

上一篇 下一篇

猜你喜欢

热点阅读