CSS给删除线设置颜色

193 阅读3分钟

CSS给删除线设置颜色

在CSS中,默认的删除线(text-decoration: line-through)颜色与文本颜色相同。如果需要为删除线设置不同的颜色,可以通过以下方法实现:

方法一:使用 text-decoration-color

text-decoration-color 属性用于设置删除线、下划线或上划线的颜色。

示例:

.strikethrough {
    text-decoration: line-through;
    text-decoration-color: red; /* 删除线颜色 */
}

HTML:

<p class="strikethrough">这是一段带删除线的文字。</p>

说明:

  • text-decoration-color 可以单独设置删除线的颜色。
  • 需要与 text-decoration: line-through 一起使用。

方法二:使用伪元素 ::after

通过伪元素 ::after 创建自定义删除线。

示例:

.strikethrough {
    position: relative;
    display: inline-block;
}

.strikethrough::after {
    content: "";
    position: absolute;
    left: 0;
    top: 50%; /* 删除线位置 */
    width: 100%;
    height: 2px; /* 删除线粗细 */
    background-color: red; /* 删除线颜色 */
    transform: translateY(-50%); /* 垂直居中 */
}

HTML:

<p class="strikethrough">这是一段带删除线的文字。</p>

说明:

  • 使用伪元素可以更灵活地控制删除线的样式和位置。
  • 通过 toptransform 调整删除线的垂直位置。

方法三:使用 linear-gradient

通过 linear-gradient 创建渐变删除线。

示例:

.strikethrough {
    background-image: linear-gradient(to right, red, red); /* 删除线颜色 */
    background-position: 0 50%; /* 删除线位置 */
    background-size: 100% 2px; /* 删除线粗细 */
    background-repeat: no-repeat;
}

HTML:

<p class="strikethrough">这是一段带删除线的文字。</p>

说明:

  • linear-gradient 可以创建渐变效果的删除线。
  • 通过 background-positionbackground-size 控制删除线的位置和粗细。

方法四:使用 box-shadow

通过 box-shadow 模拟删除线。

示例:

.strikethrough {
    box-shadow: 0 2px 0 red; /* 删除线颜色和粗细 */
    padding-bottom: 2px; /* 调整删除线与文本的间距 */
}

HTML:

<p class="strikethrough">这是一段带删除线的文字。</p>

说明:

  • box-shadow 可以创建阴影效果的删除线。
  • 通过调整 box-shadow 的偏移量和模糊半径控制删除线的样式。

方法五:使用 text-decoration 的简写属性

text-decoration 是一个简写属性,可以同时设置删除线的样式、颜色和粗细。

示例:

.strikethrough {
    text-decoration: line-through red 2px; /* 删除线样式、颜色和粗细 */
}

HTML:

<p class="strikethrough">这是一段带删除线的文字。</p>

说明:

  • text-decoration 的简写属性支持设置颜色和粗细。
  • 目前主流浏览器已支持该属性。

方法六:使用 svg 背景

通过 svg 背景创建自定义删除线。

示例:

.strikethrough {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="2"><line x1="0" y1="1" x2="100%" y2="1" stroke="red" stroke-width="2"/></svg>');
    background-position: 0 50%; /* 删除线位置 */
    background-repeat: no-repeat;
}

HTML:

<p class="strikethrough">这是一段带删除线的文字。</p>

说明:

  • 使用 svg 可以创建更复杂的删除线样式。
  • 通过 background-position 调整删除线的位置。

总结

实现删除线颜色的常见方法包括:

  1. text-decoration-color:最简单直接的方式。
  2. 伪元素 ::after:适合复杂需求。
  3. linear-gradient:支持渐变效果。
  4. box-shadow:模拟删除线。
  5. text-decoration 简写属性:同时设置样式、颜色和粗细。
  6. svg 背景:适合复杂样式。

根据具体需求选择合适的方式即可!

更多vue相关插件及后台管理模板可访问vue admin reference,代码详情请访问github