【问题标题】:How to exclude specific control from css?如何从css中排除特定控件?
【发布时间】:2013-02-22 11:55:20
【问题描述】:

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

当我在我的带有特定 css 的 aspx 中尝试它时,它不会以正确的方式出现,因为 CSS 文件有 ulli 选择器。

来自萤火虫:


现在我想从(#tabContaier ul ,#tabContaier Li) 中排除这个控件

我想要一些通用的解决方案来解决这个问题,尤其是 telerik 控件。


编辑:

应用级联技术后:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

    当然,既然您使用 jQuery 标记了您的问题,那么您通常也可以使用 jQuery 和 javascript 来执行此操作。但在这种情况下,我不明白您为什么要这样做。

    示例

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

    特异性的一个例子是定义类似#container #tabContainer ul的东西。这将覆盖不太具体的 #tabContainer ul 规则。

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

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

    使用 !important 可以处理您想要强制执行的单个规则,如下所示:

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

    【讨论】:

    • 非常感谢..这里的主要问题是:telerik控件有一个特殊情况,它们使用皮肤文件,所以我无法访问它们,此外我编写了渲染结果,但控件它自己是以特定方式用 .aspx 编写的。你可以查看链接示例以了解我的意思。
    • @just_name 我不熟悉 Telerik,但我看到的是:在示例代码中有一部分(在 &lt;title&gt; 下方的 &lt;head&gt; 标签内),您可以在其中将能够定义您的样式。在呈现的页面示例中,我看到这些样式是在导入的样式表之前呈现的。我不知道这是否是设计使然(这将是一个糟糕的设计),或者你可以改变它。如果您可以将自己的样式放在导入的样式之后,那么您可以使用层叠(选项1)。如果你不能,不用担心,只需使用 specificity(选项 2)。
    • 请注意,第 3 步和第 4 步通常被认为是不好的做法,因此请尝试使用级联 css 并提高特异性
    • @Luca 我的回答明确指出第 3 点强烈不推荐,第 4 点应该是最后一个选项。但请记住,在某些绝对合法的情况下,您会想要使用这些选项;如果没有,它们就不会出现在规范中。问题是滥用。就这么说吧,在使用 3 或 4 之前最好先知道自己在做什么。
    • 级联技术的工作原理如下:您稍后编写的具有相同特性的任何规则都会覆盖之前编写的任何规则。这意味着:只需在文档头中的 Telerik 样式之后编写您的规则:就这么简单。
    猜你喜欢
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 2022-06-10
    • 2012-07-23
    • 2012-12-10
    • 2011-08-11
    • 2017-12-01
    • 1970-01-01
    相关资源
    最近更新 更多