如何从css中排除特定控件?

时间:2013-03-07 10:22:06

标签: jquery asp.net css telerik css-selectors

我有一个telerik treeview,它在HTML中呈现为ul

当我在我的aspx中使用特定css进行尝试时,它的显示方式不正确,因为CSS文件包含ulli个选择器。

来自萤火虫:

enter image description here enter image description here


现在我想从(#tabContaier ul ,#tabContaier Li)

中排除此控件

我想要一些针对此问题的一般解决方案,尤其是使用telerik控件。


编辑:

应用级联技术后:

<telerik:RadTreeView ID="RadTreeView1" runat="server" CheckBoxes="True" Height="200px"
                                                                TriStateCheckBoxes="true"  CheckChildNodes="true" Skin="rad_rv"  EnableEmbeddedSkins="false" >

enter image description here

1 个答案:

答案 0 :(得分:3)

如果您无法更改指定了这些规则的.css文件,有几种方法可以覆盖CSS中的规则。

  1. 级联:顾名思义,在稍后编写的CSS规则中覆盖之前写的规则,无论它们是否在同一张表中。

  2. 特异性:比您要使用选择器覆盖的规则更具体。 More about specificity

  3. 内联样式:使用属性style在HTML元素中编写样式。强烈建议不要这样做,因为您应该将表示和内容分开(这是CSS的全部要点);然而,当你在javascript中覆盖它们时,通常会这样做(见下文)。 内联样式实际上只是一个特殊情况(最强)的特殊情况;这就像是说:“我的意思是完全这个元素这里

  4. 在规则后使用!important :求助于此作为覆盖的最后一种方法,因为!important会覆盖除用户定义的!important以外的任何内容标记的样式表。

  5. 当然,既然你用jQuery标记了你的问题,你也可以使用jQuery和javascript来做到这一点。但在这种情况下,我没有看到你为什么要那样做。

    实施例

    在您的情况下,更好的级联的示例只是:在您的telerik样式表定义它们之后定义#tabContainer ul。就那么简单。什么时候导入该样式表?将它移到您自己的样式表上方,您将确保所写的所有内容都会覆盖那里写的内容。

    特异性的示例,将定义类似#container #tabContainer ul的内容。这将覆盖不太具体的#tabContainer ul规则。

    内联样式意味着您实际上将样式硬编码在元素中,如下所示:

    <ul class=rtUL rtLines" style="height: 40px;">
    

    使用!important 可以解决您想要强行进入的单一规则,如下所示:

    #tabContainer ul {
        height: 40px !important;
    }