视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
详解CSS的overflow属性防止float撑开div的使用方法
2020-11-27 18:52:50 责编:小采
文档
我们在使用float设定浮动元素的时候经常会遇到撑破p的情况,其中一种解决方法即是利用overflow: hidden,这里我们就来看一下使用CSS的overflow属性防止float撑开p的方法:

许多应征前端工程师的人,在面试时都会被问到这类float的问题。
例如:p元素内的两个子元素p都float:left,外面的p会变成没有高度,此时该怎么办呢?
通常解法是在排版流里面的元素加一个after的伪元素,将它设成display: block以及clear:both即可解决。

p:after {content: "";display: block;clear: both;}

不过我今天意外发现,原来overflow: hidden;也会撑开p呀!如下:
长知识了。

<body>
 <p>
 <p>I am floated</p>
 <p>So am I</p></p><style>p { 
 overflow: hidden;}p { 
 float: left;}</style>

深入
让我们继续深入,来看下面的例子:
编写如下代码,查看效果
HTML代码:

<p class="content">
 <p class="p1">

 </p>
</p>

CSS代码:

.content { 
 border: 1px solid red; 
} 
.p1 { 
 width: 100px; 
 height: 100px; 
 background-color: cyan; 
}

效果如下:

在content中添加一个p1,并设置了content标签的边框和p1标签的大小和颜色,看到content标签把p1标签包裹起来了。并且还撑起了content标签的大小

但,当我们设置了p1向右浮动的属性之后

.p1 { 
 width: 100px; 
 height: 100px; 
 background-color: cyan; 
 float: rightright; 
}

就会变成这个样子:

p1标签确实右对齐了,但是并没有撑起content标签的高度。
莫着急,我们需要设置一个属性,就是给content标签,添加overflow属性

添加属性 (overflow: hidden;)

.content { 
 border: 1px solid red; 
 overflow: hidden; 
}

添加完之后,效果就成了这样

下载本文
显示全文
专题