2015-10-31 2 views
5

У меня есть следующий HTMLCSS: удалить подчеркивание из текста

<div style="text-decoration: underline;"> 
    outer text 
    <div style="text-decoration: none;">inner text</div> 
</div> 

Даже если я не использовал «нет» на «внутренний текст», он по-прежнему подчеркнуты. Вот пример скрипта JS: http://jsfiddle.net/oj2wj1d6/1/

Как удалить подчеркивание из «внутреннего текста»? Я должен поддерживать ту же структуру HTML, не добавляя никаких новых тегов HTML.

+1

вау. даже '! important' не работает. :( – BenjaminGolder

+1

может быть, есть способ через javascript ... –

+1

Возможно, последовательная разметка позволит избежать этого http://jsfiddle.net/oj2wj1d6/8/ или даже http://jsfiddle.net/oj2wj1d6/9/ из контекстных ответов догадки –

ответ

1

Вид Hacky, но с помощью селектора ::first-line psueduo, он применяет стиль к «первой линии» только поэтому в приведенном ниже примере я использовал элемент (p), чтобы сломать текст и вызвать действие.

Это, конечно, предполагается, что единственный текст, который вы хотите подчеркнуть, - это первая строка вашего контента. пусть покупатель будет бдителен, YMMV и т.д.

example on JSFiddle.net

HTML:

<div class="first-line-underline"> 
    outer text a sentence 
    wut 
    yea 
    <p>inner text</p> 
</div> 

CSS:

.first-line-underline::first-line { 
    text-decoration: underline; 
} 

text-decoration on Mozilla Developer Network ::first-line on Mozilla Developer Network

+0

Sgnl, из вход от других людей, спецификации определяют это поведение. Ваше решение, а не совершенное, работает именно в моем случае. Благодаря!!! – curious1

+1

Да, это взломать для вашего дела. Будущие читатели: «caveat emptor», YMMV и т. Д. – Sgnl

9

Это фактически определяется поведение в the spec:

Текст украшения рисовать по узлам. Это означает, что невозможно отключить на потомок текстовое украшение, указанное на одном из его предков.

Подробнее на https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration

+0

Спасибо за указание на спецификации! Но это не имеет смысла, если текст потомков должен унаследовать украшение текста от родительского тега, а спецификации также позволяют «text-decoration: none» в то же время. – curious1

+1

Нет, спецификации имеют смысл. Вы, как разработчик, можете добавлять объявления в любом месте, где хотите. может делать все объявления в мире, но в конце концов это будет работать? В зависимости от спецификаций. Только потому, что вы можете заявить, что это не обязательно означает, что он будет работать. – Sgnl

Смежные вопросы