css :before / :after 伪类选择器的真正作用及使用场景

8 篇文章 0 订阅

:before:after 这两伪类选择器原本就是单纯的在元素前后增加额外的内容,比如:

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<style type="text/css">
		.box:before{
			content: '111';
		}
		.box:after{
			content: '222'
		}
	</style>
</head>
<body>
	<div class="box">测试</div>
</body>
</html>

在这里插入图片描述

看似很普通对吧,干啥呢这俩玩意,我直接手动写成111测试222不就完事了,大题小做呢。从上面例子上看确实显得这俩玩意等级很低,但它其实隐含着非常大的作用,那就是它能为我们节省标签,所以接下来我会举个例子简单说明一下

例子

在这里插入图片描述
代码:

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<style type="text/css">
		.box{
			position: relative;
		    width: 100px;
		    background: cyan;
		    text-align: center;
		}
	</style>
</head>
<body>
	<div class="box">测试</div>
</body>
</html>

如图所示,此时假设产品经理要求要在测试两字前后追加 < >左右箭头图标时,你会怎么做?没用过这俩伪类的人可能就会直接想着定义几个 div 去写 css 就完事了,这样确实可以实现,但有个明显的问题就是你的 html 结构就会额外多这些 div,并且会随着需求变更变得越来越多这些 div 标签,导致可读性变差。而有了 :before / :after 那可就省了好多事了,我们来看代码。

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<style type="text/css">
		.box{
			position: relative;
		    width: 100px;
		    background: cyan;
		    text-align: center;
		}
		.box:before, .box:after{
			content: '';
			position: absolute;
			width: 5px;
			height: 5px;
			top: 0; bottom: 0;margin: auto;
			border-width: 0 2px 2px 0;
			border-style: solid;
			color: red;
		}
		.box:before{
			left: 0;
			transform: rotate(135deg);
		}
		.box:after{
			right: 0;
			transform: rotate(-45deg);
		}
	</style>
</head>
<body>
	<div class="box">测试</div>
</body>
</html>

在这里插入图片描述
我们可以看到,图中多出了两个箭头,而代码中只有一个 div 标签,有没有感受到干净清晰?这才是 :before / :after 因有的功能,可不是简单的在前后追加内容,事实上只要你 css 玩的 6 ,这俩伪类就可以玩出许多新花样来,当然了,要想玩的6还是需要时间积累,这里笔者不再举例,我们只要记得这俩属性能够给我们 节省标签 就可以了。

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cookcyq

请作者喝杯暖暖的奶茶

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值