HTML5如何给文字加删除线_删除线样式实现与自定义方法【技巧】

发布时间 - 2026-01-10 00:00:00    点击率:
最快实现删除线的方式是使用 text-decoration: line-through,它原生支持、无需额外标签或JS,但无法单独控制颜色和粗细;如需自定义,应使用 text-decoration-color 和 text-decoration-thickness(需三者同设),或用 ::after 伪元素模拟以获得完全控制。

text-decoration: line-through 最快实现删除线

直接给文字加删除线,最简单可靠的方式就是 CSS 的 text-decoration 属性。它原生支持 line-through 值,无需额外标签或 JS。

  • 适用于所有块级/行内元素,比如

  • 注意:它会继承,子元素也会带删除线,如需局部取消,得显式设 text-decoration: none
  • 不能单独控制删除线颜色或粗细——这是它的硬限制,不是写法错了
span.deleted {
  text-decoration: line-through;
}

想改删除线颜色或粗细?必须用 text-decoration-colortext-decoration-thickness

HTML5 + CSS Text Decoration Level 3 标准已支持这些属性,但兼容性有坑:Chrome 90+、Firefox 97+、Safari 15.4+ 才稳定支持 text-decoration-thicknesstext-decoration-color 支持稍好(Chrome 57+,Firefox 36+)。

  • text-decoration-thickness 可设 autofrom-font、具体像素值(如 2px)或百分比
  • 三者需同时设置才生效:text-decoration-line: line-through + text-decoration-color + text-decoration-thickness
  • 旧版浏览器会忽略后两个属性,回退到默认删除线(黑色、细线),属于安全降级
p.highlighted {
  text-decoration-line: line-through;
  text-decoration-color: #ff6b6b;
  text-decoration-thickness: 3px;
}

需要完全自定义位置/角度/动画?用伪元素 ::after 模拟删除线

当标准属性不够用——比如要让删除线斜穿文字、随文字变色、或加 hover 动画——就得放弃 text-decoration,改用 ::after 伪元素手动绘制一条线。

  • 核心思路:把文字设为 position: relative,再用 ::after 绝对定位画线
  • 可自由控制 widthheighttransform: rotate()background 等任意样式
  • 注意:伪元素默认不占文档流,且无法自动适配文字宽度,需用 width: 100% 或 JS 测量(后者复杂,一般用前者+微调)
span.custom-strike {
  position: relative;
  text-decoration: none;
}
span.custom-strike::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, #ff416c, #ff4b2b);
  transform: translateY(-50%) rotate(-5deg);
}

慎用 标签:语义正确 ≠ 样式可控

是 HTML5 语义化标签,表示被删除的内容,浏览器默认渲染为删除线。但它只是语义载体,样式仍由 CSS 控制。

  • 不要指望它自带红字或特殊样式——所有现代浏览器都只默认加 text-decoration: line-through
  • 若项目需无障碍支持(如屏幕阅读器), 会读作“已删除”,比纯 CSS 更准确;但若只是视觉装饰,用 更轻量
  • 的区别:后者仅表示“不再准确/不推荐”,无时间维度含义,语义更弱

真正容易被忽略的是:删除线在高对比度模式(Windows 系统设置)下可能被强制覆盖为系统主题色,此时 text-decoration-color 无效,伪元素方案也需额外适配 @media (forced-colors: active)


# css  # html  # js  # html5  # windows  # 伪元素  # 浏览器  # safari  # win  # 区别  # 绝对定位  # firefox  # chrome  # auto  # 继承  # class 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 潮流网站制作头像软件下载,适合母子的网名有哪些?  如何快速搭建高效简练网站?  如何做网站制作流程,*游戏网站怎么搭建?  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  Laravel storage目录权限问题_Laravel文件写入权限设置  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  香港服务器网站推广:SEO优化与外贸独立站搭建策略  Android okhttputils现在进度显示实例代码  教学论文网站制作软件有哪些,写论文用什么软件 ?  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  如何用PHP快速搭建高效网站?分步指南  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  php打包exe后无法访问网络共享_共享权限设置方法【教程】  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  浅谈javascript alert和confirm的美化  Laravel如何自定义分页视图?(Pagination示例)  昵图网官网入口 昵图网素材平台官方入口  javascript基于原型链的继承及call和apply函数用法分析  Laravel如何配置和使用缓存?(Redis代码示例)  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  JavaScript如何实现倒计时_时间函数如何精确控制  利用JavaScript实现拖拽改变元素大小  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  如何在云主机快速搭建网站站点?  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  网页设计与网站制作内容,怎样注册网站?  制作公司内部网站有哪些,内网如何建网站?  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  北京专业网站制作设计师招聘,北京白云观官方网站?  如何自定义建站之星模板颜色并下载新样式?  如何快速打造个性化非模板自助建站?  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  Laravel如何记录自定义日志?(Log频道配置)  微信小程序 input输入框控件详解及实例(多种示例)  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  如何打造高效商业网站?建站目的决定转化率  如何在自有机房高效搭建专业网站?  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  如何快速搭建高效可靠的建站解决方案?  python中快速进行多个字符替换的方法小结  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  如何挑选优质建站一级代理提升网站排名?  Laravel如何使用Telescope进行调试?(安装和使用教程)  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?