2013-10-26 40 views
0

當使用具有文本修飾樣式的div時,似乎並不是在將該跨度浮動後將其應用於div內的跨度。 這是什麼解釋,我該如何解決?內聯元素文本修飾不起作用

看到這裏我的問題:http://jsfiddle.net/wtBDX/2/

div { 
    color: red; 
    text-decoration: line-through; 
} 

div span { 
    float: right; 
} 
+1

當你漂浮的元素,你正在服用它的公文流轉。 – Terry

回答

2

這是規範中的要求,這states

注意文本修飾不會傳播到浮動和絕對定位的後代,也不給原子內聯級別後代的內容,如行內塊和內聯表。

唯一的解決辦法是apply the text decoration to the span as well

div { 
    color: red; 
    text-decoration: line-through; 
} 

div span { 
    float: right; 
    text-decoration: line-through; 
} 
+0

謝謝,解釋。 問題仍然存在,但爲什麼?(!);) – Ramiro

+1

BoltClock解釋了爲什麼在[他的回答我的問題](http://stackoverflow.com/a/39491131/514793)。文字修飾不是繼承的,而是由父代傳播,擁有和繪製的。如果孩子控制自己的位置,父母爲孩子提供東西並不太合理。 另外我覺得有一個替代解決方案。您可以將span設置爲繼承文本裝飾'div span {text-decoration:inherit;}'。如果您通過向父級添加條件類來控制裝飾並且不想編輯所有子級,這將非常有用。 – Jools