У меня есть следующий пример HTML:Невозможно удалить текст-украшение с этикетки
<div class="a">
<div>
<ul class="b">
<li class="c">
<input id="123" type="checkbox" checked></input>
<label for="123">test</label>
</li>
<li class="c">
<input id="456" type="checkbox"></input>
<label for="456">test</label>
</li>
</ul>
</div>
</div>
И следующий CSS:
.a {
text-decoration: line-through;
}
.a .b .c input[type="checkbox"]:not(:checked) + label {
text-decoration: none !important;
}
Это может быть найдено в этом JS скрипку: https://jsfiddle.net/4q8a7yox/1/
Я хотел бы удалить линию из всех меток для непроверенных элементов. Странно то, что консоль Chrome показывает «вычисленное» текстовое украшение как «нет», но оно все еще показывает это. Все браузеры (IE10 и FF) не срабатывают аналогичным образом. Любая идея, что здесь происходит?
, так что это ошибка в спецификации HTML/CSS? это не имеет никакого смысла, вы можете удалить любой другой стиль CSS – automaton
Потому что это не технически наследование. Прочитайте это, это объяснит намного лучше, чем я могу: http://www.sitepoint.com/web-foundations/text-decoration-css-property/ – PGBI
спасибо, это объясняет это. это, пожалуй, наименее интуитивный дизайн, который я видел довольно долго. позор, это делается таким образом. – automaton