2013-08-28 12 views
5

Ho un tag span all'interno di uno td. Lo td ha una classe con CSS per impostare lo text-decoration su underline, mentre lo span imposta lo text-decoration su none. Mi aspetto che il testo all'interno del span non sia sottolineato, ma per qualche motivo lo è. Perché?L'intervallo all'interno di td non sovrascrive lo stile td

.u { 
 
    text-decoration: underline; 
 
} 
 

 
.no-u { 
 
    text-decoration: none !important; 
 
}
<table> 
 
    <tr> 
 
     <td class="u"> 
 
      <span class="no-u" style="text-decoration: none !important;">My Text</span> 
 
     </td> 
 
    </tr> 
 
</table>

+6

La durata non ha una sottolineatura; la cella della tabella ha ancora la sottolineatura. In altre parole, la sottolineatura viene applicata alla cella, non allo span, quindi la regola sullo span non ha alcun effetto notevole. – j08691

+0

Accoeding al commento @ j08691, prova a impostare 'text-decoration: overline;' sullo span, vedrai * underlne * e * overline * entrambi insieme: http://jsfiddle.net/hashem/mfV5V/3/ –

+0

Potresti trovare utile questo argomento: http://stackoverflow.com/questions/7113520/text-decorationnone-doesnt-remove-text-decoration –

risposta

0

Secondo le specifiche CSS2, http://www.w3.org/TR/CSS21/text.html#lining-striking-props:

Per i contenitori di blocco che stabiliscono un contesto di formattazione in riga, le decorazioni vengono propagate a un elemento inline anonima che avvolge tutti i bambini a livello di riga nel flusso del contenitore del blocco.

Ciò significa che che qualsiasi testo e qualsiasi elemento inline come <b>, <em> e <span> sono tutti avvolti in una scatola in linea anonima su cui è applicata la decorazione del testo.

Inoltre, nel caso di un elemento inline child, è possibile applicare un'altra decorazione di testo che consente di visualizzare sia underline che overline su un intervallo di testo. In questo caso, la sottolineatura dipinta su una scatola anonima in linea e la linea di contorno è dipinta su una seconda scatola anonima (annidata) in linea.

In questo esempio, l'elemento td funge da contenitore del blocco.

Tuttavia, questo non si applica a inline-blocks.

Vedere la demo: http://jsfiddle.net/audetwebdesign/MSUHx/