Я хотел бы иметь серый текст с красной зачеркнуты, но этот стиль не работает:CSS: Линейный цвет отличается от цвета текста?
color: #a0a0a0;
text-decoration: line-through 3px red;
Что я делаю неправильно?
Я хотел бы иметь серый текст с красной зачеркнуты, но этот стиль не работает:CSS: Линейный цвет отличается от цвета текста?
color: #a0a0a0;
text-decoration: line-through 3px red;
Что я делаю неправильно?
Вы можете смоделировать желаемый эффект с двумя вложенными элементами, например:
<style type="text/css">
span.inner {
color: green;
}
span.outer {
color: red;
text-decoration: line-through;
}
</style>
<span class="outer">
<span class="inner">foo bar</span>
</span>
Невозможно сделать сквозной проход с другим цветом. Он будет в цвете, который вы определяете с помощью свойства color
.
см http://www.w3.org/TR/CSS2/text.html#lining-striking-props
EDIT:
, что пришло мне в голову, чтобы использовать фоновое изображение с 1px * 1px цвета точки в понравившийся вам цвет.
CSS:
.fakeLineThrough {
background-image: url(lineThroughDot.gif);
background-repeat: repeat-x;
background-position: center left;
}
HTML:
<span class="fakeLineThrough">the text</span>
Нету, линия будет позади текста. – borisdiakur 2013-06-02 21:01:56
В CSS2 спецификацииговорит
Цвет (ы), требуемый для оформления текста, должен быть получен из значения свойства «цвет» элемента, на котором установлено «text-decoration». Цвет украшений должен оставаться неизменным, даже если элементы-потомки имеют разные значения «цвета»
Я думаю, это означает, что вы не можете так поступать.
Обходной способ может использовать какую-то границу и поднимать его?
Существует еще один способ взглянуть на значение спецификации CSS2; и это внешний текст-украшение задает цвет «сквозной» и текст, но внутренняя декларация цвета (в теге «span») может использоваться для сброса цвета текста.
<p style="text-decoration:line-through;color:red">
<span style="color:#000">
The "line-through" and "color" are declared in 'p', and the inner 'span'
declares the correct color for the text.
</span>
</p>
Без лишних DOM (но может не работать для некоторых раскладок по понятным причинам):
<style type="text/css">
.strikethrough {
position: relative;
}
.strikethrough:before {
border-bottom: 1px solid red;
position: absolute;
content: "";
width: 100%;
height: 50%;
}
</style>
<span class="strikethrough">Foo Bar</span>
Ничего себе ... Это действительно работает :) Цвета болят мои глаза, но это сработало;) – 2010-12-06 08:05:42
Я получу более приятную комбинацию цветов за небольшую плату;) – 2010-12-06 08:10:17
@BenjaminWohlwend, вы, старший, выиграли в Интернете: D – 2013-03-01 00:31:15