2015-10-31 27 views
5

Ho il seguente codice HTMLCSS: Rimuovere sottolineato dal testo

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

Anche se ho usato "nessuno" per "testo interno", è ancora sottolineato. Ecco l'esempio di JS fiddle: http://jsfiddle.net/oj2wj1d6/1/

Come rimuovere la sottolineatura da "testo interno"? Devo mantenere la stessa struttura HTML senza aggiungere nuovi tag HTML.

+1

wow. anche '! important' non funziona. :( – BenjaminGolder

+1

forse c'è un modo per javascript ... –

+1

forse un markup coerente eviterebbe questo http://jsfiddle.net/oj2wj1d6/8/ o anche http://jsfiddle.net/oj2wj1d6/9/ fuori dalle risposte contestuali sono azzeccate –

risposta

1

Tipo di hacky ma utilizzando il selettore ::first-line psueduo, si applica lo stile al 'prima linea' solo così nell'esempio seguente ho usato un elemento (un p) per rompere il testo e innesca l'azione.

Si presume ovviamente che l'unico testo che si desidera sottolineare sia la prima riga del contenuto. emptor di avvertimento, YMMV, ecc

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, dal input da altre persone, le specifiche definiscono tale comportamento. La tua soluzione, non perfetta, funziona solo nel mio caso. Grazie!!! – curious1

+1

sì, è un trucco per il tuo caso. I futuri lettori: "caveat emptor", YMMV, ecc. – Sgnl

9

Questo è in realtà il comportamento definito in the spec:

decorazioni di testo disegnare attraverso elementi discendenti. Ciò significa che non è possibile disabilitare su un discendente una decorazione testuale specificata su uno dei suoi antenati.

Maggiori dettagli a https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration

+0

Grazie per indicare le specifiche! Ma non ha senso se il testo discendente deve ereditare la decorazione del testo da un tag principale e le specifiche consentono anche "text-decoration: none;" allo stesso tempo. – curious1

+1

No, le specifiche hanno senso. Tu, come lo sviluppatore, puoi aggiungere dichiarazioni ovunque vuoi, tu può fare tutte le dichiarazioni del mondo ma alla fine funzionerà? Dipende dalle specifiche, solo perché puoi dichiararlo non significa necessariamente che funzionerà. – Sgnl

Problemi correlati