page contents

为什么需要清除浮动 清除浮动的方式?

轩辕小不懂 发布于 2021-12-03 14:32
阅读 506
收藏 0
分类:WEB前端开发
2561
Nen
Nen
- 程序员

浮动的定义: 非IE浏览器下,容器不设高度且子元素浮动时,容器高度不能被内容撑开。 此时,内容会溢出

到容器外面而影响布局。这种现象被称为浮动(溢出)。

浮动的工作原理:

浮动元素脱离文档流,不占据空间(引起“高度塌陷”现象)

浮动元素碰到包含它的边框或者其他浮动元素的边框停留

浮动元素可以左右移动,直到遇到另一个浮动元素或者遇到它外边缘的包含框。浮动框不属于文档流中的普通流,

当元素浮动之后,不会影响块级元素的布局,只会影响内联元素布局。此时文档流中的普通流就会表现得该浮动框

不存在一样的布局模式。当包含框的高度小于浮动框的时候,此时就会出现“高度塌陷”。

浮动元素引起的问题?

父元素的高度无法被撑开,影响与父元素同级的元素

与浮动元素同级的非浮动元素会跟随其后

若浮动的元素不是第一个元素,则该元素之前的元素也要浮动,否则会影响页面的显示结构

清除浮动的方式如下:

给父级div定义height属性

最后一个浮动元素之后添加一个空的div标签,并添加clear:both样式

包含浮动元素的父级标签添加overflow:hidden或者overflow:auto

使用 :after 伪元素。由于IE6-7不支持 :after,使用 zoom:1 触发 hasLayou

.clearfix:after{

 content: "\200B";

 display: table;

 height: 0;

 clear: both;

 }

 .clearfix{

 *zoom: 1;

 }

请先 登录 后评论