老师我不太理解 .clearfix 能详细的讲解一下么?

老师我不太理解 .clearfix 能详细的讲解一下么?

# 具体遇到的问题
不太理解为什么要用伪元素;

不太理解里边的clear:both;

可不可以在写css样式表时,直接给需要清除浮动的部分写上overflow:hidden,而不用单独的添加这个.clearfix;



# 报错信息的截图

# 相关课程内容截图

# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

在这里输入代码,可通过选择【代码语言】突出显示

.clearfix::after{

content:'';

display:block;

​clear:both;

overflow:hidden;

}

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,伪元素是某个元素的子元素,它的特点就是“看的见摸不着”,即:我们能在浏览器上看到它,但是它却不存在于页面的html结构上。以::after为例,如下:

http://img1.sycdn.imooc.com//climg/5fb37603094e229107620292.jpg

http://img1.sycdn.imooc.com//climg/5fb375cf097eee4c09780219.jpg

虽然伪元素并不存在于html结构上,但是它们可以像div等标签那样设置样式,所以可以用它们替代正常标签,做一些特殊的操作,比如清除浮动.clearfix::after。但是它们也不是万能的,比如在js中,就无法获取到伪元素(因为它们实际上并不存在)。即我们可以把伪元素当成一个普通标签来使用,但由于它们自身的特点受限,所以只有少数场合才使用它们。

关于伪元素,了解这么多即可。

祝学习愉快!

好帮手慕久久 2020-11-17 13:53:34

同学你好,解答如下:

1. 可以直接在css中使用overflow:hidden清除浮动,但是有一种场合并不适合使用这种方式,比如鼠标移入导航项,会出现下拉列表,此时如果给父元素设置overflow:hidden;那么下图中的列表就会被超出隐藏,从而看不见:
http://img1.sycdn.imooc.com//climg/5fb36243097837af06400159.jpg
所以此时就可以使用.clearfix来清除浮动。
2. clear:both;则是清除左右浮动的意思,即把浮动全部清除。
3. 使用.clearfix时,实际上使用的是.clearfix的伪元素,这样的好处是可以少写一个元素,即如果不使用伪元素,那么则需要使用一个额外的元素来清除浮动,比如div标签,如下:
http://img1.sycdn.imooc.com//climg/5fb364c309a04ca906350405.jpg
但是这样写,会造成页面上有很多清除浮动的div标签,代码不够优化,因此采用伪元素来替代div会优化代码。
4. 使用.clearfix::after清除浮动时,写法是固定的,同学记住即可。
祝学习愉快!

  • 提问者 摩苏尔 #1
    老师我还是不理解这个伪元素,能详细讲解一下伪元素的不
    2020-11-17 14:44:19
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师