博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
详解利用clear清除浮动的一些问题解决
阅读量:6913 次
发布时间:2019-06-27

本文共 1677 字,大约阅读时间需要 5 分钟。

下面这段代码是用来清除浮动带来的高度塌陷问题

.clearfix:before {    content: ".";     display: block;     height: 0;     clear: both;     visibility: hidden;}

Question 1: 上面的代码的能够实现清除浮动的问题吗?

Answer: Can't. 因为clear属性只能控制元素本身与前面的浮动元素的关系。在本例中,使用:before伪元素明显位于所有子元素之前,故而clear属性不会因后面的浮动元素产生任何作用效果。 clear属性的官方定义可以查看CSS文档 。那么应该如何修改呢?将:before换成:after即可。最终代码如下:

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

Question 2: content属性的内容能改成空吗content: '';?

Answer: Yes. 因为设置了 height:0; 和 visibility: hidden。 如果设置了content:'';,那么 height:0; 和 visibility: hidden和 可以去掉吗? 当然可以,因为块元素没有内容就不会有高度咯。

更改后的代码如下:

.clearfix:after {    content: "";     display: block;    clear: both;}

Question 3: display属性的内容能改成 inline 或 inline-block 吗?

Answer: 不能。 我们要明白float属性的初衷————让文字环绕图片展示。翻译成另外一句话:内联级别的元素会环绕浮动元素展示。那么为什么 display: block;可以解决高度塌陷的问题呢。 因为 clear属性的含义是不让元素本身与浮动元素的边界相邻。如果块级元素要不与块级元素边界相邻,只有换到下一行展示。也正为换行,才将父元素到高度撑开了,正式上面的代码解决高度塌陷的原理。

Question 4: 下面到div元素会存在高度塌陷问题吗?

历史的天空

Answer: 存在。为什么呢?要知道 clear属性中, clear:left; 和 clear:right; 的区别。

left : 不与左浮动的元素产生边界接触;

right : 不与右浮动的元素产生边界接触;
both : 不与左浮动和右浮动的元素产生边界接触;
所以上面的代码不会解决高度塌陷到问题。

如果有如下代码:

 
1
2
3
1
2
3

你会发现,两个div的展示效果是相同的。也就是说,如果前面同时存在左浮动和右浮动到元素,那么clear属性值无论设成left 还是right都无关紧要。 反过来想,如果clear属性设成 both,那么无论前面的元素是左浮动还是右浮动,都无关紧要。这也是clearfix通常设置 clear:both;的原因。

注意一点,我们一直在说 解决 高度塌陷都问题,从来没有说清除浮动。 是因为本质上,浮动并没被清除,我们只是利用clear属性解决了浮动元素带来的父级元素高度塌陷问题。而且clear属性影响也只是设置clear属性的元素本身,而不是浮动元素。

为了学习工作与休闲娱乐互不冲突,现新建圈【码农茶水铺】用于程序员生活,爱好,交友,求职招聘,吐槽等话题交流,希望各位大神工作之余到茶水铺来喝茶聊天。

转载地址:http://clicl.baihongyu.com/

你可能感兴趣的文章
云服务能力评估,腾讯云TStack首批通过私有云“一级能力”认证
查看>>
Apache 用户名密码验证
查看>>
三周第三次课 3.7 su命令 3.8 sudo命令 3.9 限制root远程登录
查看>>
中兴智能视觉大数据报道:人工智能带动相关产业规模达到1000亿元
查看>>
glibc版本升级
查看>>
开始学习Linux运维
查看>>
dubbo源码分析- 日志实现
查看>>
【OCP新题库】052最新题库解析-第6题
查看>>
FastDFS+Nginx单机部署
查看>>
MP4视频太大怎么在线压缩
查看>>
PDF文件怎么编辑,怎么给PDF文件添加页眉页脚
查看>>
Android查看数否有SD卡插入的源码
查看>>
第五周
查看>>
Android亮屏和熄屏控制
查看>>
网站原创文章撰写的5点注意要素
查看>>
Linux 配置Apache服务器 下(虚拟主机,排错)
查看>>
10个最佳Web开发资源
查看>>
Linux(BASH)命令搜索机制
查看>>
TurboMail邮件系统解决政务邮箱被***或盗号
查看>>
我的友情链接
查看>>