美文网首页
浮动,定位,BFC以及边距合并

浮动,定位,BFC以及边距合并

作者: 饥人谷_saybye | 来源:发表于2017-03-15 19:14 被阅读0次

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

特征:

  1. 浮动的框可以左右移动(根据float属性值而定),直到它的外边缘碰到包含框或者另一个浮动元素的框的边缘。
  2. 浮动元素脱离普通文档流。
  3. 文档的普通流中的元素表现的就像浮动元素不存在一样。
  4. 文档普通流中元素的内容能感知浮动元素存在,受浮动元素影响。

影响:

  1. 会使父容器高度塌陷。
  2. 其他浮动元素会排在同一行显示。如果包含块儿太窄无法容纳水平排列的三个浮动元素,那么其它浮动块儿向下移动,直到有足够的空间,如果浮动元素的高度不同,那么向下移动的时候可能被卡住
  3. 普通元素会视浮动元素不见,占据浮动元素原有的位置,但会被浮动元素遮罩。
  4. 文字能够感知浮动元素的存在。文本内容会受到浮动元素的影响,会移动以留出空间.用术语说就是浮动元素旁边的行框被缩短,从而给浮动元素流出空间,因而行框围绕浮动框

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

因为浮动元素脱离文档流,导致父容器塌陷等一系列问题,清除浮动指解决浮动带来的影响
解决方法:

  1. 在父容器中的最后添加一个空div,对他清理。缺点是增加了一个无意义的标签
  2. BFC清理浮动
    BFC就是页面上新建一个隔离的独立容器,与外界不受影响
    BFC特征:
    - BFC会阻止垂直外边距(margin-top、margin-bottom)折叠
    - BFC不会重叠浮动元素
    - BFC可以包含浮动
    我们可以利用特征3来清除浮动,如何形成BFC
overflow为 hidden|auto|scroll
display为 table-cell|table-caption|inline-block
position为 absolute|fixed```
我们可以对父容器添加这些属性来形成BFC达到“清浮动”效果。但是要注意利用这些属性会造成一系列的后续影响
3. 通用的清理浮动法案

/方法1/
.clearfix{
zoom:1;}适用于IE6,7
.clearfix:after{
content:"";
display:block;
clear:left;}
/
方法2*/
.clearfix{
*zoom:1;}
.clearfix:after{
content:"";
display:table;
clear:both;}```

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

6种定位方式

  1. inherit 规定应该从父元素继承 position 属性的值
  2. static 默认值,没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)
  3. relative 生成相对定位的元素,相对于元素本身正常位置进行定位,因此,left:20px 会向元素的 left 位置添加20px
  4. absolute 生成绝对定位的元素,相对于static定位以外的第一个祖先元素(offset parent)进行定位,元素的位置通过 left, top, right 以及 bottom 属性进行规定
  5. fixed 生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 left, top, right 以及 bottom 属性进行规定
  6. sticky CSS3新属性,表现类似position:relative
    和position:fixed的合体,在目标区域在屏幕中可见时,它的行为就像position:relative; 而当页面滚动超出目标区域时,它的表现就像position:fixed,它会固定在目标位置(兼容性很差,一般不用)

inherit主要是继承父元素的position
relative是相对定位,相对于自身发生偏移,不会脱离文档流
absolute是绝对定位,相对于static定位以外的第一个祖先元素(offset parent)进行定位,元素的位置通过 left, top, right 以及 bottom 属性进行规定。会脱离文档流
fixed固定定位,相对于浏览器窗口进行定位,常用于广告。

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

因为绝对定位与文档流无关,所以绝对定位的元素可以覆盖页面上的其他元素,可以通过z-index属性控制叠放顺序,z-index越高,元素位置越靠上。

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

position:relative;只相对自己原本位置发生偏移,无论元素是否移动,元素在文档流中占据原来空间,只是表现出来的位置会改变。不影响其它普通流中元素的位置。
margin:除了让元素自身发生偏移还影响其它普通流中的元素。

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

BFC的全称是 [Block Format Content]块级格式化上下文
如何形成BFC
float为 left|right
overflow为 hidden|auto|scroll
display为 table-cell|table-caption|inline-block
position为 absolute|fixed
BFC作用:
BFC会阻止垂直外边距(margin-top、margin-bottom)折叠
案例
BFC不会重叠浮动元素
案例
BFC可以包含浮动
案例

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

外边距合并指的是,两个在普通文档流中的“相邻”元素外边距相遇的时候发生合并的情况。这个所谓的“相邻”可以是父子关系相邻,兄弟关系相邻,甚至如果一个元素内部没有东西,自身的上下边距相遇时都会发生外边距合并。当两个外边距都是正数时,取两者之中的较大者;当两个外边距都是负数时,取两者之间绝对值较大者;当两个外边距一正一负时,取的是两者的和。
合并场景:
1、相邻元素外边距合并,设bfc即可
2、嵌套元素的外边距合并,参考之前所写BFC作用
3、自身的合并。一个元素如果里面没有东西,也没有边框和padding,那么它自身的外边距就会融合,也会发生外边距合并。

相关文章

  • 浮动,定位,BFC以及边距合并

    浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 特征: 浮动的框可以左右移动(根据fl...

  • 浮动定位BFC边距合并

    1.浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动模型也是一种可视化模型,浮动的...

  • 浮动定位BFC边距合并

    1.浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素会脱离普通文档流,直到碰到...

  • 浮动定位BFC边距合并

    浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素也是一种可视化格式模型,浮动的...

  • 浮动定位BFC边距合并

    1.浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素的特征:首先脱离文档正常流...

  • 浮动定位BFC边距合并

    1. 浮动元素的特征,对其他浮动元素、普通元素、文字的影响 浮动模型是一种可视化格式模型,浮动元素可以左右移动(根...

  • 浮动定位BFC边距合并

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

  • 浮动定位BFC边距合并

    浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动的元素会脱离文档流.向左或者向右移...

  • 浮动定位BFC边距合并

    1.浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素会脱离标准的文档流,浮动的...

  • 浮动定位BFC边距合并

    1.浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素不在文档的普通流中,它可以...

网友评论

      本文标题:浮动,定位,BFC以及边距合并

      本文链接:https://www.haomeiwen.com/subject/rqlknttx.html