::after伪元素通过content属性在元素后插入装饰内容,常用于创建分隔线或角标等视觉效果。例如在导航菜单中为每个.nav-item添加竖线分隔,再通过:last-child排除最后一个元素的分隔线;也可用于卡片右上角添加“New”标签,结合绝对定位与z-index实现叠加效果。使用时需注意:content不能为空、默认为行内元素、不占文档流,适合配合hover实现动态动画,提升样式灵活性并减少HTML冗余。
在CSS中,::after 伪元素常用于在元素内容之后插入装饰性内容,而无需修改HTML结构。通过它实现分隔线或背景装饰效果,既简洁又灵活。
常见于列表项之间、导航菜单或段落之间添加视觉分隔。通过设置 ::after 的尺寸和背景色,可以生成一条垂直或水平的分隔线。
例如,在水平导航中为每个菜单项右侧添加竖线:
.nav-item {
position: relative;
padding-right: 15px;
}
.nav-item::after {
content: "";
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
width: 1px;
height: 12px;
background-color: #ccc;
}
注意:最后一个元素通常不需要分隔线,应通过 :last-child 排除:
.nav-item:last-child::after { display: none; }
除了分隔线,::after 还适合创建悬浮图标、角标、渐变遮罩等装饰元素。比如在卡片右上角添加“New”标签:
.card {
position: relative;
padding: 20px;
border: 1px solid #ddd;
}
.card::after {
content: "New";
position: absolute;
top: -8px;
right: -8px;
background: #ff6b6b;
color: white;
font-size: 12px;
padding: 4px 8px;
border-radius: 4px;
box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
利用绝对定位与层级控制(z-index),这类装饰可精准叠加在目标元素之上。
基本上就这些。合理使用 ::after 能减少冗余标签,让结构更干净,样式更集中。