clear清理指令(详解利用clear清除浮动的一些问题解决)
clear清理指令
详解利用clear清除浮动的一些问题解决下面这段代码是用来清除浮动带来的高度塌陷问题
.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: 下面到li元素会存在高度塌陷问题吗?
<style> .clearfix::after { content: ""; display: block; clear:left; } img { float: right; } </style> <li class="clearfix"> <span>历史的天空</span> <img src="images/naruto.gif"> </li>
Answer: 存在。为什么呢?要知道 clear属性中, clear:left; 和 clear:right; 的区别。
- left : 不与左浮动的元素产生边界接触;
- right : 不与右浮动的元素产生边界接触;
- both : 不与左浮动和右浮动的元素产生边界接触;
所以上面的代码不会解决高度塌陷到问题。
如果有如下代码:
<style> .clear-left { clear:left; } .clear-right { clear:right; } .fl { float: left;} .fr { float: right;} .box { height: 30px; width: 30px; background: yellowgreen; margin: 5px; } </style> <li> <li class="box fl">1</li> <li class="box fr">2</li> <li class="box clear-left">3</li> </li> <li> <li class="box fl">1</li> <li class="box fr">2</li> <li class="box clear-right">3</li> </li>
你会发现,两个li的展示效果是相同的。也就是说,如果前面同时存在左浮动和右浮动到元素,那么clear属性值无论设成left 还是right都无关紧要。 反过来想,如果clear属性设成 both,那么无论前面的元素是左浮动还是右浮动,都无关紧要。这也是clearfix通常设置 clear:both;的原因。
注意一点,我们一直在说 解决 高度塌陷都问题,从来没有说清除浮动。 是因为本质上,浮动并没被清除,我们只是利用clear属性解决了浮动元素带来的父级元素高度塌陷问题。而且clear属性影响也只是设置clear属性的元素本身,而不是浮动元素。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
- css用clearfix清除浮动
- css中浮动的方式有几种方式(浅谈css中浮动和清除浮动带来的影响)
- css清除浮动
- html5清除浮动的方法(HTML5实现移动端点击翻牌功能)
- margin属性设置4个参数(解决margin塌陷与margin合并margin清除浮动问题)
- 可以清除浮动影响的方法是(常用的清除浮动的方法)
- css浮动布局和盒子(css 盒模型 文档流 几种清除浮动的方法实例详解)
- clear清理指令(详解利用clear清除浮动的一些问题解决)
- css如何去掉本身的浮动元素(CSS清除浮动的常用方法优缺点分析)
- flow布局(详解为什么设置overflow为hidden可以清除浮动带来的影响)
- 如何清除浮动元素带来的影响(关于清除浮动塌陷的几种方法总结)
- 巅峰时期被爆床照,曾被选国民最讨厌女星,IU不为人知的黑历史(巅峰时期被爆床照)
- 每天1万吨牛奶倒进下水道,美国大萧条一幕重现(每天1万吨牛奶倒进下水道)
- 如何看待美国数十万加仑牛奶倒下水道 历史又重演了(如何看待美国数十万加仑牛奶倒下水道)
- 历史惊人的相似,美国80万加仑牛奶倒入下水道,意味着什么(历史惊人的相似)
- 美国数十万加仑牛奶倒进下水道,世界会重演1929年的大萧条吗(美国数十万加仑牛奶倒进下水道)
- 美国数十万加仑牛奶倒入下水道,贫民区食不果腹,历史再次重演(美国数十万加仑牛奶倒入下水道)
热门推荐
- mysql顺序排序(Mysql 中文排序规则说明)
- css弹出遮罩层页面不可滑动(Html5页面点击遮罩层背景关闭遮罩层)
- php支付接口(PHP实现的支付宝支付功能示例)
- dedecms替换条件(织梦cmsDEDECMS通过正则批量查找替换数据库的自定义内容)
- ui界面的测试用例(AmazeUI中模态框的实现)
- html5游戏新手引导开发(使用数据结构给女朋友写个Html5走迷宫游戏)
- vue前端打包发布教程(Vue项目打包、合并及压缩优化网页响应速度)
- 微信推送功能大全(微信推送功能实现方式图文详解)
- 阿里云怎么注册用户(怎么注册阿里云帐号)
- vue3.0安装element(vue3+electron12+dll开发客户端配置详解)