css浮动清除

1. 什么是浮动

当元素的 float 属性不为 none 时就产生了浮动。

2. 浮动影响

  1. 浮动元素的外边距不会合并。
  2. 浮动非替换元素时必须设定宽度。
  3. 浮动元素会脱离文档流但不会脱离文本流,因而会造成文本环绕效果,而这也是浮动的本意。
  4. 不管是块级元素还是内联元素,一旦浮动就会变成行内块元素(即display: inline-block;)
  5. 如果浮动元素应用了负外边距而导致其与相邻元素重叠,分两种情况:
  • 行内框与一个浮动元素重叠时,其边框、背景和内容都在该浮动元素之上显示。
  • 块框与一个浮动元素重叠时,其边框和背景都在该浮动元素之下显示,而内容在浮动元素之上显示。

3.清除浮动

上面提到过浮动元素是不具备高度的,因此会造成父元素高度塌陷,可以通过以下方法来清除浮动。不仅要知道什么方式可以清除浮动,更要知道这些方法是如何清除浮动的。

1.浮动父元素

CSS 2.1中提到了浮动的一个特性:浮动元素会延伸,从而包含其所有后代元素。但这有点拆了东墙补西墙的意味,不推荐。
应用对象:父元素

2.overflow属性

overflow 属性本意是规定了当内容溢出元素框时发生的事情。但当其属性值为hidden或auto时,它会自动的清理包含的任何浮动元素,也就意味着它是认可浮动元素的高度的。但在某些情况下,使用该方法会产生滚动条或截断内容。所以使用时需谨慎。
应用对象:父元素

3.clear属性

clear属性会给该元素添加足够的外边距,从而达到清除浮动的效果。clear 属性的值可以是:left、right、both或none。
应用对象:相邻元素
4.伪元素
在没有现成元素可以应用clear属性时,我们可以使用伪元素:

 .clearfix::after {
    content: '';
    display: block;
    visibility: hidden;
    height: 0;
    clear: both;
}

注:after 会在元素内容后面而不是元素后面插入一个伪元素。
应用对象:父元素

5.空元素

当然,我们也可以直接在浮动元素后面添加一个空元素,如下:

 <div style="clear:both;"></div>

同样可以达到清除浮动的效果,但会增加不必要的代码,不推荐。

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,796评论 1 92
  • 文章版权归饥人谷_Lyndon以及饥人谷所有。 1. 浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分...
    HungerLyndon阅读 2,403评论 4 10
  • float : left | right | none 设计之初的作用是做文字环绕 p标签段落双标签块级 i...
    雅玲哑铃阅读 501评论 0 1
  • 1.CSS基本概念 1.1 CSS的定义 CSS(Cascading Style Sheets)层叠样式表,主要用...
    寥寥十一阅读 1,868评论 0 6
  • 前段时间听《汉密尔顿》意犹未尽,看到易中天老师推荐此书,趁假期读完。讲的通俗易懂文笔轻松。做份读书笔记,免得日后全...
    高小尚阅读 1,071评论 2 3