当前位置:  开发笔记 > 编程语言 > 正文

CSS从文本中删除了不同的颜色?

如何解决《CSS从文本中删除了不同的颜色?》经验,为你挑选了7个好方法。

HTML元素del,strike或者s可以全部用于文本删除效果.例子:

del

....得出: 德尔

strike and strike

....给:罢工罢工

可以类似地text-decoration使用具有值的CSS 属性line-through.代码...


    text-decoration:line-through

...也将呈现为:text-decoration:line-through

但是,删除线通常与文本颜色相同.

CSS可以用来使线条变成不同的颜色吗?



1> gojomo..:

是的,通过添加额外的包装元素.将所需的直通颜色指定给外部元素,然后将所需的文本颜色指定给内部元素.例如:


  black with red strikethrough


2> Mechanical s..:

截至2016年2月,CSS 3具有下述支持.这是WooCommerce单一产品页面的一个片段,价格折扣

/*Price before discount on single product page*/
body.single-product .price del .amount {
color:           hsl(0, 90%, 65%);
font-size:       15px;
text-decoration: line-through;
/*noinspection CssOverwrittenProperties*/
text-decoration: white double line-through; /* Ignored in CSS1/CSS2 UAs */
}

导致: 文字装饰示例


CSS 3可能会直接支持使用该text-decoration-color属性.特别是:

text-decoration-colorCSS属性设置绘制由指定的下划线,overlines或删除线时使用的颜色text-decoration-line.这是为这些文本装饰着色的首选方法,而不是使用其他HTML元素的组合.

另请参阅text-decoration-colorCSS 3草案规范.

如果要立即使用此方法,则可能必须使用前缀-moz-text-decoration-color.(-moz-为了向前兼容,也请指定它.)


@BoltClock:它是如何乐观的?它已经在W3C工作草案中,正在积极推行.
3年后...... Firefox和Safari拥有它= 20%的覆盖率.
"CSS 3可能会"相当......乐观.
根据[caniuse](http://caniuse.com/#feat=text-decoration),目前没有浏览器(2014年)支持没有前缀的`text-decoration-color`.

3> Blazemonger..:

我使用了一个空:after元素并在其上装饰了一个边框.您甚至可以使用CSS变换将其旋转为斜线.结果:纯CSS,没有额外的HTML元素!下行:不包括多行,尽管IMO你不应该在大块文本上使用删除线.

s,
strike {
  text-decoration: none;
  /*we're replacing the default line-through*/
  position: relative;
  display: inline-block;
  /* keeps it from wrapping across multiple lines */
}

s:after,
strike:after {
  content: "";
  /* required property */
  position: absolute;
  bottom: 0;
  left: 0;
  border-top: 2px solid red;
  height: 45%;
  /* adjust as necessary, depending on line thickness */
  /* or use calc() if you don't need to support IE8: */
  height: calc(50% - 1px);
  /* 1px = half the line thickness */
  width: 100%;
  transform: rotateZ(-4deg);
}

Here comes some strike-through text!



4> 小智..:

如果您不关心Internet Explorer \ edge,则实现删除线不同颜色的最简单方法是使用CSS属性: text-decoration-color和text-decoration:line-through;一起使用。

.yourClass {
    text-decoration: line-through !important;
    text-decoration-color: red !important;
}

-不适用于Edge \ Internet Explorer



5> 小智..:

添加到@gojomo可以使用:after伪元素作为附加元素.唯一需要注意的是,由于CSS 功能有限,因此您需要innerTextdata-text属性中定义content.

CSS

s {
  color: red;
  text-align: -1000em;
  overflow: hidden;
}
s:after {
  color: black;
  content: attr(data-text);
}

HTML

Strikethrough



6> simbo..:

这是一种使用渐变来伪造线条的方法.它适用于多线攻击,不需要额外的DOM元素.但由于它是背景渐变,它背后的文字......

del, strike {
  text-decoration: none;
  line-height: 1.4;
  background-image: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(0.63em, transparent), color-stop(0.63em, #ff0000), color-stop(0.7em, #ff0000), color-stop(0.7em, transparent), to(transparent));
  background-image: -webkit-linear-gradient(top, transparent 0em, transparent 0.63em, #ff0000 0.63em, #ff0000 0.7em, transparent 0.7em, transparent 1.4em);
  background-image: -o-linear-gradient(top, transparent 0em, transparent 0.63em, #ff0000 0.63em, #ff0000 0.7em, transparent 0.7em, transparent 1.4em);
  background-image: linear-gradient(to bottom, transparent 0em, transparent 0.63em, #ff0000 0.63em, #ff0000 0.7em, transparent 0.7em, transparent 1.4em);
  -webkit-background-size: 1.4em 1.4em;
  background-size: 1.4em 1.4em;
  background-repeat: repeat;
}

见小提琴:http://jsfiddle.net/YSvaY/

渐变颜色停止和背景大小取决于行高.(之后我用LESS进行计算和Autoprefixer ......)



7> 小智..:

此CSS3将使您更加轻松地遍历属性,并且工作正常。

span{
    text-decoration: line-through;
    text-decoration-color: red;
}

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有