饥人谷技术博客

inline-block、BFC、边距合并

2016-07-18  本文已影响337人  婷楼沐熙

收拾心情,重新出发。
加油。


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

总的来说,外边距合并不一定是两个相邻元素,不相邻的也可能会发生外边距合并。只要它们的外边距会融合到一起,没有分界线(可以是边框、padding,也可以是BFC形成的空间)隔开,就有可能发生外边距合并。

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

未去除间隙之前

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

当元素设置浮动时,父元素感知不到元素的存在,造成高度塌陷。在父容器使用overflow属性是形成一个BFC,使其内部元素不受外界的影响。关于BFC还可以参考深入理解BFC与合并
BFC有三个特性:

根据第三条特性就可以知道,父容器的高度可以被撑开。

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

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

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

.clearfix:after{   /* 在clearfix后面添加一个伪元素 */
    content: ' ';    /* 伪元素的内容为空白字符 */
    display: block;  /* 因为伪元素生成的默认为行内又元素,而clear对象一定是块级元素,所以这里设置一下display属性。 */
    clear: both;   /* 元素两边都不能有浮动对象 */
}
.clearfix{          
    *zoom: 1;  /* “*”号是IE6~8的一个bug,IE6~8看到以“*”开头的代码,会忽略星号,执行后面的代码。而zoom的原意是放大。它也会触发BFC,在IE里面其实不叫BFC,叫hasLayout 。*/
}

七、代码

1、实现如下效果的导航条。

导航条
效果预览
2、利用BFC的原理实现下图所示两栏布局。
<div id="header">header</div> 
<div id="content"> 
      <div class="aside">aside</div> 
      <div class="main"> 
我是main 我是main 我是main 我是main 我是main 我是main 我是main 我是main 我是main 我是main 我是main 我是main... 
      </div>
 </div> 
<div id="footer"></div>
两栏布局
效果预览
代码github地址
上一篇下一篇

猜你喜欢

热点阅读