2014-09-27 109 views
1

我有一個非常複雜的下拉菜單,它包含幾乎每個部分和子部分的不同圖標,它引起了特定性問題這一點我覺得很難控制。爲僞元素覆蓋子元素的最佳方法(例如:之前)

例,在父菜單中,我有這樣的事情:

ul.parent .t1 a:before {background-position: 12px -49px;width:34px;} 

在兒童菜單.t1,沒有:before僞元素,但它拿起父母的僞元素。

我現在做的,是增加了一類新的子UL,並宣佈它:

ul.sub-child li a:before {width:0!important} 

由於菜單的複雜性,我想知道如果有一個聰明的方法覆蓋特異性。

+1

首先請注意,您可以通過'content:none'聲明刪除生成的內容。其次,我會選擇直接後代選擇器'A> B'而不是後代選擇器'A B',這有助於區分嵌套元素。 – 2014-09-27 20:30:54

回答

0

如果您只想設計元素的直接子元素,請使用child selector>

在你的情況我不知道確切的HTML結構,但這樣的事情:

ul.parent .t1 > a:before { 
    /* CSS rules */ 
} 

這僅適用的規則的.t1直接孩子的a:before不是所有的人下了線。