首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CSS之after clear「建议收藏」

CSS之after clear「建议收藏」

作者头像
全栈程序员站长
发布2022-10-03 13:55:40
发布2022-10-03 13:55:40
48600
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。 clear属性只会影响使用它的元素,具体可以看我的这篇文章: http://blog.csdn.net/liujan511536/article/details/50086275 当我们给一个元素加上:after时,就是在这个元素内容的后面加上新的内容,

如:

代码语言:javascript
代码运行次数:0
运行
复制
<html>
<head>
	<title></title>
	<style type="text/css">
	#demo:after
	{
		content:"--good"
	}
	</style>
</head>
<body>
<div id="demo">hello world</div>
</body>
</html>

但是,这个新加上的内容是加在demo元素里面的,而不是在demo元素后面,相当于在demo元素 里面创建一个子元素,然后将其内容设置为–good。 所以当要消除本元素浮动给后面元素带来影响时,可以用:after{clear:both},但是不能把after加在浮动元素上,例如下面的例子是不能清楚浮动的影响的:

代码语言:javascript
代码运行次数:0
运行
复制
<html>
<head>
	<title>float 4</title>
	<style type="text/css">
	div#div1
	{
		width: 80px;
		height: 80px;
		background-color: yellow;
		float: left;
	}
	div#div1:after
	{
		clear: both;
	}
	div#div2
	{
		width: 100px;
		height: 80px;
		background-color: green;
	}
	</style>
</head>
<body>
<div id="div1"></div>
<div id="div2"></div>
</body>
</html>

因为这时候div1浮动,after相当于在div1里面创建一个子元素,然后把该子元素的clear属性设为both,子元素是不能消除父元素的浮动影响的。 为了达到消除浮动的效果,我们需要在div1后面(也就是div1和div2之间)创建一个新元素,然后将新元素 的clear属性设置为both,如下:

代码语言:javascript
代码运行次数:0
运行
复制
<html>
<head>
	<title>float 4</title>
	<style type="text/css">
	div#div1
	{
		width: 80px;
		height: 80px;
		background-color: yellow;
		float: left;
	}
	div#div3
	{
		clear:both;
	}
	div#div2
	{
		width: 100px;
		height: 80px;
		background-color: green;
		/*float: left;*/
	}
	</style>
</head>
<body>
<div id="div1"></div>
<div id="div3"></div>
<div id="div2"></div>
</body>
</html>

又因为after是在当前元素的里面创建一个子元素的,所以其实我们可以在浮动元素外面加上一层div(也就是给浮动元素加上父元素div),然后这时候父元素的after就是在父元素里面创建一个子元素,也就是在浮动元素后面创建一个相邻元素了。然后我们在把父元素的after clear设置为both就可以了,如下:

代码语言:javascript
代码运行次数:0
运行
复制
<html>
<head>
	<title>float 4</title>
	<style type="text/css">
	div#div1
	{
		width: 80px;
		height: 80px;
		background-color: yellow;
		float: left;
	}
	.clearfix:after
	{
		content: " ";
		font-size:0px;
		display: block;
		clear: both;
		visibility: visible;
	}
	
	div#div2
	{
		width: 100px;
		height: 80px;
		background-color: green;
		/*float: left;*/
	}
	</style>
</head>
<body>
<div class="clearfix">
	<div id="div1"></div>
</div>
<div id="div2"></div>
</body>
</html>

注意这是的content一定要写,否则浮动也不会清除。 为了兼容IE,建议加上下面的语句:

代码语言:javascript
代码运行次数:0
运行
复制
.clearfix
{
	zoom:1;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/197468.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月4日 上,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档