task11 inline-block、BFC、边距合并

2016-07-02  本文已影响0人  咸吧

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

在CSS当中,相邻的两个盒子(可能是兄弟关系也可能是祖先关系)的外边距可以结合成一个单独的外边距。这种合并外边距的方式被称为折叠,并且因而所结合成的外边距称为折叠外边距。

如何合并?

如何不合并?

父子外边距合并

去除inline-block内缝隙有哪几种常见方法?

  li {
      margin-left:-4px;
        }
  div>li:firstchild {
          margin-left:0;
      }
 div {
       overflow:auto;
          }
 div>li {
           float:left;
          }

父容器使用overflow: auto| hidden撑开高度的原理是什么?

当overflow设置为auto或scroll或hidden时可以触发BFC,使得父容器能够包裹浮动元素。
overflow撑起父容器高度
参考文章深入理解CSS溢出overflow

BFC是什么?如何形成BFC,有什么作用?

BFC全称”Block Formatting Context”, 中文为“块级格式化上下文”。
触发BFC条件:

BFC的作用:在布局上自动填满,除去浮动内容以外的剩余空间,也就是自适应布局。** PS:BFC形成独立空间,外边距不与其他元素发生合并。 **
参考文章:BFC特性下多栏自适应布局

浮动导致的父容器高度塌陷指什么?为什么会产生?有几种解决方法?

高度塌陷是指父容器内部的子元素由于浮动导致其脱离了文档流,父容器认为内部没有元素,高度因此将塌陷为0。

解决方法:

.clearfix:after  {
      content:'';
      display:block;
      clear:both;
}

以下代码每一行的作用是什么? 为什么会产生作用? 和BFC撑开空间有什么区别?

/* 在父容器内部最后添加一个元素 */
.clearfix:after { 
                    /* 元素内容为空 */
                    content: ''; 
                    /*元素为块级元素 */
                    display: block;
                    /*  清除左右两侧浮动 */ 
                    clear: both;
                    } 
.clearfix {  
             /* 使清除浮动兼容ie6,ie7  */
              *zoom: 1;
              }

clearfix是在父容器里设置了一个空的div清除浮动。而BFC是形成了一个独立空间,不会与其他元素有相互作用。

上一篇 下一篇

猜你喜欢

热点阅读