2013-10-22 20 views
2

以下代碼顯示有兩個嵌套列表。外部文字修飾:直通屬性,另外一個沒有直通。我怎樣才能刪除這個內在的線路或不在第一個地方應用它?!我想行通過對「外」字,而不是「內部」無法在子列表中刪除線段

<DOCTYPE html> 
<header><style> 
ol li {text-decoration:line-through; color:red;} 
ol li ul li{text-decoration:none; color:pink;} 

</style></header> 
<body> 
    <ol> 
     <li>Outter 
      <ul> 
       <li> 
        Inner 
       </li> 
      </ul> 
     </li> 
    </ol> 
</body> 
+0

你想刪除從內部或外部或兩者的線通? – dezman

+0

看起來不能完成。真的令人驚訝其實: http://stackoverflow.com/a/1823388/1977420 – idotpdot

+0

@idotpdot它可以完成。請參閱您鏈接的同一問題的[我自己的回答](http://stackoverflow.com/a/17347691/1529630)。 – Oriol

回答

5

您可以使用display: inline-block,以避免父母的text-decoration影響其子女。

Demo

它的工作原理是因爲,根據specs

當在指定的或傳播到 內嵌元素,它影響由該元件, 產生的所有框並且被進一步傳播到任何內嵌塊級盒子(請參閱第9.2.1.1節)。但是,在CSS 2.1中,裝飾是否傳播到塊級別的表中並未定義爲 。對於塊 容器是建立一個行內格式化上下文中, 裝飾被傳播到包裝塊容器的 所有的流行內孩子的匿名內聯元素。對於所有 其他元素它傳播給任何流入兒童。需要注意的是 文本修飾不會傳播浮動和絕對 定位後裔,也不原子行內的內容 後代,如內聯塊和內聯表

+0

謝謝你的作品!但爲什麼我必須這樣做?你能解釋一下嗎? –