查看: 302|回复: 1

CSS伪元素实现角标并带对勾图标效果(完整代码)

[复制链接]
发表于 5 天前 | 显示全部楼层 |阅读模式
在网页开发中,为卡片、优惠券等元素添加角标可以突出状态或信息。本文分享一种纯CSS实现方法,利用伪元素和border属性绘制右下角角标,并在角标内嵌入对勾图标,无需额外图片或字体图标。

实现原理是通过 ::after 伪元素绘制红色三角作为角标背景,再通过 ::before 伪元素绘制白色对勾线条,两者叠加形成完整效果。核心利用 border 的透明和颜色组合构造三角形,以及边框变形绘制对勾。

完整CSS代码如下:
  1. .coupon_card.active {
  2.     border: 1px solid #f32121;
  3.     position: relative;
  4. }
  5. .coupon_card.active::after {
  6.     content: '';
  7.     position: absolute;
  8.     right: 0;
  9.     bottom: 0;
  10.     border-width: 0 0 20px 20px;
  11.     border-style: solid;
  12.     border-color: transparent transparent #f32121;
  13. }
  14. .coupon_card.active::before {
  15.     content: '';
  16.     position: absolute;
  17.     width: 10px;
  18.     height: 6px;
  19.     background: transparent;
  20.     bottom: 4px;
  21.     right: 2px;
  22.     border: 2px solid white;
  23.     border-top: none;
  24.     border-right: none;
  25.     -webkit-transform: rotate(-55deg);
  26.     -ms-transform: rotate(-55deg);
  27.     transform: rotate(-55deg);
  28.     z-index: 9;
  29. }
复制代码

**关键属性解读:**
- `.coupon_card.active` 设置相对定位,作为伪元素的定位参考,同时改变边框颜色突出激活状态。
- `::after` 使用 border 绘制三角形:border-width 设定为 0 0 20px 20px,即只有下边框和左边框有宽度,其他为0。通过 border-color 将下边框设为红色(#f32121),左边框及其他设为透明,形成右下角红色三角。
- `::before` 绘制对勾:利用两个白色边框(宽2px),去掉上边框和右边框,形成直角折线。然后通过 transform: rotate(-55deg) 旋转角度,使其呈现对勾造型。配合 bottom:4px right:2px 微调位置,让对勾恰好落在三角内部。

**适用场景:**
该方案适合优惠券、卡片、商品标签等需要突出某项状态的元素。只需在HTML结构上添加 active 类名即可切换角标显示。由于完全依赖CSS,无额外请求,性能优秀,且支持响应式调整(通过修改 border-width 和定位值改变角标大小)。

**注意事项:**
- 父元素必须设置 position: relative,否则伪元素会相对于非定位祖先定位。
- 对勾的旋转角度(-55deg)需根据实际视效微调,不同字体和屏幕密度下可能需调整。
- 如需更改角标颜色,修改 ::after 的 border-color 中最后一个色值即可。
- 该样式仅用于带 active 类的元素,未添加 active 时无角标显示,便于状态切换。

通过以上代码,可以快速实现带对勾图标的角标效果,提升界面细节和用户体验。无需依赖任何外部资源,是前端开发的实用技巧。

(注:原文效果图因本文为纯文本教程,未包含,请在实际浏览器中测试效果。)
回复

使用道具 举报

发表于 5 天前 | 显示全部楼层

Re: CSS伪元素实现角标并带对勾图标效果(完整代码)

谢谢分享,这个纯CSS实现角标加对勾的方案很实用,完全不依赖外部资源,代码也清晰易懂。尤其对勾用两个边框旋转来模拟,思路很巧妙。我之前做类似效果往往要引入字体图标,你这个方法更轻量。我有个小疑问:对勾的旋转角度设为-55deg,如果角标大小改变(比如调大border-width),这个角度是否需要重新微调?或者有没有更通用的角度让对勾在不同尺寸下都适配?期待你的进一步经验。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-14 04:17 , Processed in 0.024220 second(s), 17 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部