CSS认识7

问题

参考资料:http://www.w3help.org/zh-cn/kb/006/


参考资料:
http://www.zhangxinxu.com/wordpress/2012/04/inline-block-space-remove-%E5%8E%BB%E9%99%A4%E9%97%B4%E8%B7%9D/


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

我的理解是
overflow:hidden|auto本身是用来隐藏溢出的部分,当父元素高度固定的时候,子元素超出的部分会隐藏。当父元素高度不定的时候父元素的高度取决于子元素的高度,但是当float之后子元素跟父元素不在同一个平面,父元素里面没有东西了,高度就塌陷了。给父元素增加overflow: auto| hidden之后 为了实现隐藏这个功能父元素会去强行包裹住子元素(如果有固定高度,超出高度的子元素将会被隐藏,如果没有固定高度 父元素高度还是依据子元素的高度)

overflow: auto| hidden 主要还是父级元素隐藏子元素 为了能够实现这个特性父级元素会强行包裹子元素
总地来说还是触发了bfc

http://js.jirengu.com/dumusikaye/1/edit?html,css,output


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

1 BFC是块级格式化上下文

2 float的值不为none。 overflow的值不为visible。 position的值不为relative和static。display的值为table-cell, table-caption, inline-block中的任何一个。

3 消除浮动的影响 创建多栏布局


  • 浮动导致的父容器高度塌陷指什么?为什么会产生?有几种解决方法
    1 当父元素高度没有设定的时候 父元素高度取决于子元素 子元素浮动 脱离正常的文档流 父元素高度为0 无法正确计算
    2 当子元素浮动 脱离正常的文档流 float不为none的时候 position为absolute|fixed
    3 position为absolute|fixed时无法解决。

分别设置float、overflow、position、display属性来触发bfc模式 至少有四种

http://js.jirengu.com/voxiqasuyo/1/edit


  • 以下代码每一行的作用是什么? 为什么会产生作用? 和BFC撑开空间有什么区别?
.clearfix:after{
    content: '';
    display: block;
    clear: both;
}
.clearfix{
    *zoom: 1;
}

1 在包含有.clearfix类名的after伪类添加一个块级空元素并清楚它的浮动
*浏览器Hack ie7及ie7以下 识别
zoom:1 ie私有属性缩放一倍 但是可以触发ie hasLayout 触发hasLayout属性的元素会负责对自己和可能的子孙元素进行尺寸计算和定位

2 当元素设置触发BFC或hasLayout之后元素内部浮动对外部的影响被清除,所以我们可以用来清楚浮动的影响

3清除浮动的影响顾名思义 也可以理解是闭合浮动 在最后添加一个空的块级元素来撑开之前所有浮动的影响

BFC撑开高度只用于开启BFC属性的父元素以及里面的子元素,并且里面的子元素是不会受到外部布局的影响。

案例:
http://js.jirengu.com/hepajegoqa/1/edit?html,css,output

Paste_Image.png
Paste_Image.png

本教程版权归菲龍探雲和饥人谷所有,转载须说明来源

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,815评论 1 92
  • relative:生成相对定位的元素,通过top,bottom,left,right的位置相对于其正常位置进行定位...
    zx9426阅读 972评论 0 2
  • 1.浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动模型也是一种可视化格式模型,浮...
    谨言_慎行阅读 426评论 0 3
  • 1、浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素按照横向排列的方式进行元素...
    李博洋li阅读 425评论 0 1
  • 上世纪九十年代,辩论赛在中国的大学里兴起,虽然现在已不是大学生辩论赛的黄金时期,但是各种学生社团举办个一两场辩论赛...
    追风爱学习阅读 2,396评论 0 9