Css 为伪元素覆盖子元素的最佳方法(例如:before)
我有一个非常复杂的下拉菜单,几乎每个部分和子部分都有不同的图标,这导致了一个我很难控制的问题 例如,在父菜单中,我有如下内容:Css 为伪元素覆盖子元素的最佳方法(例如:before),css,pseudo-element,css-specificity,Css,Pseudo Element,Css Specificity,我有一个非常复杂的下拉菜单,几乎每个部分和子部分都有不同的图标,这导致了一个我很难控制的问题 例如,在父菜单中,我有如下内容: ul.parent .t1 a:before {background-position: 12px -49px;width:34px;} ul.parent .t1 > a:before { /* CSS rules */ } 在.t1的children菜单中,没有:before伪元素,但它拾取父元素的伪元素 我现在要做的是向sub-UL添加一个新类,
ul.parent .t1 a:before {background-position: 12px -49px;width:34px;}
ul.parent .t1 > a:before {
/* CSS rules */
}
在.t1的children菜单中,没有:before伪元素,但它拾取父元素的伪元素
我现在要做的是向sub-UL添加一个新类,并声明它:
ul.sub-child li a:before {width:0!important}
由于菜单的复杂性,我想知道是否有一种聪明的方法可以覆盖特定性。如果只想设置元素的直接子元素的样式,请使用> 在您的情况下,我不知道确切的HTML结构,但类似于以下内容:
ul.parent .t1 a:before {background-position: 12px -49px;width:34px;}
ul.parent .t1 > a:before {
/* CSS rules */
}
这只将规则应用于.t1的直接子级的a:before,而不是所有子级 首先请注意,您可以按content:none声明删除生成的内容。第二,我使用直接后代选择器A>B,而不是后代选择器AB,这有助于区分嵌套元素。