2013-08-28 11 views
5

Ich habe ein span tag innerhalb einer td. Die td hat eine Klasse mit CSS, um die text-decoration auf underline zu setzen, während die span die text-decoration auf none setzt. Ich erwarte, dass der Text innerhalb der span nicht unterstrichen wird, aber aus irgendeinem Grund ist es. Warum?Span innerhalb von td überschreibt nicht td style

.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

Die Spannweite keine unterstrichen hat; Die Tabellenzelle hat nur noch die Unterstreichung. Mit anderen Worten, die Unterstreichung wird auf die Zelle und nicht auf die Spanne angewendet, sodass Ihre Regel für die Spanne keine merkliche Auswirkung hat. – j08691

+0

Kommentieren zu @ j08691 Kommentar, versuchen Sie einfach, Text-Dekoration zu setzen: Überstreichen; auf der Spannweite sehen Sie * Underlne * und * Overline * beide zusammen: http://jsfiddle.net/hashem/mfV5V/3/ –

+0

Sie können dieses Thema nützlich finden: http://stackoverflow.com/questions/7113520/text-decorationnone-doesnt-remove-text-decoration –

Antwort

0

Gemäß dem CSS2 spec, http://www.w3.org/TR/CSS21/text.html#lining-striking-props:

Für Blockbehälter, die einen Inline-Formatierungskontext herzustellen, sind die Dekorationen auf ein anonymes Inline-Element fortgepflanzt, die alle in Strömungs wickeln Kinder Inline-Ebene des Blockcontainers. Diese

bedeutet, dass jeder Text und andere Inline-Element wie <b>, <em><span> und alle in einem anonymen Inline-Box verpackt sind, auf dem der Text Dekoration aufgebracht wird.

Darüber hinaus können Sie im Falle eines untergeordneten Elements für untergeordnete Elemente eine weitere Textdekoration anwenden, die es Ihnen ermöglicht, sowohl Unterstreichungen als auch Überstreichungen in einer Textspanne anzuzeigen. In diesem Fall wird die Unterstreichung in einer anonymen Inline-Box gezeichnet und die Überstreichung in einer zweiten (verschachtelten) anonymen Inline-Box gezeichnet. In diesem Beispiel fungiert das Element td als Blockcontainer.

Dies gilt jedoch nicht für inline-blocks.

Siehe die Demo an: http://jsfiddle.net/audetwebdesign/MSUHx/

Verwandte Themen