【问题标题】:CSS style does not apply, style depth limit?CSS样式不适用,样式深度限制?
【发布时间】:2015-03-03 12:52:20
【问题描述】:

我有以下问题:

我得到一个带有动态内容的生成 HTML。 ID 和 html 标记层次结构始终相同。我可以设置样式表。

我尝试将文本的颜色设置为红色。如果我将它设置在屏幕截图中完成的位置,它就不起作用。如果我在下表中将其设置为内联(table cols=2 border=0...),它会起作用。

CSS 是否有深度限制?如何设置包含 div 的整个文本的颜色(id=15B_gr 或 id=oReportCell)?


++更新++

我尝试设置样式表,但它不起作用:

【问题讨论】:

  • ID 不应以数字开头
  • 没有看到你的 CSS,我建议这是一个选择器特异性问题。例如,如果您将id=15B_gr 设置为黑色文本,并且无法使其远处的孙子显示红色文本。您可以在此处阅读有关选择器特异性的信息:developer.mozilla.org/en-US/docs/Web/CSS/Specificity
  • @uʍopǝpısdn 他目前正在尝试在外部<div> 上使用内联样式,但它们不会被最内部的<span> 继承。
  • @CᴴᵁᴮᴮʸNᴵᴺᴶᴬ OP 说它是生成的 html 并且从其他 id 看起来它是一个报告呈现引擎,所以它很可能超出了他的控制。

标签: html css limit depth


【解决方案1】:

您应该能够使用星号定位 div 的所有子项。在这种情况下:

#15B_gr * {
    color:red;
}

或者你可以只在元素上设置它:

#15B_gr span {
    color:red;
}

** 编辑以获取更多信息 **

正如@nico o 所指出的,由于将数字作为 ID 中的第一个字符,可能会出现一些复杂情况。以前版本的 HTML 规范不允许 ID 以数字开头。

http://w3c.github.io/html-reference/datatypes.html#common.data.id

【讨论】:

  • 我试过了,但它不起作用。我更新了我的问题。
  • 我明白了。如果这是检查,那么它们已经设置为 !important; (这真的很不幸)。你可以做同样的事情,就像最后一个 !important;规则将优先,但这是一种极端情况。
  • 一个 ID 不能以数字开头(感谢 Nico O)然后我将星号应用于 oReportCell,然后它就可以工作了。
  • 实际解决方案是因为 id(和类名)不应该以数字开头。这个答案是无关紧要的,如果没有回答者写的解决方案,这个答案不应该被接受。
  • @DanielCheung 这仅适用于以前版本的 HTML,但我会将其添加到答案中,因为它在许多情况下仍然相关。
【解决方案2】:

也许你有一个规则(在另一个样式表中?),它有一个选择器,其中包含你想要设置样式的元素类,但另外还有父元素或祖父元素的元素的类名。在这种情况下,特定的风格会超过你的风格。

在这种情况下,您可以在规则中添加“!important”(颜色:红色 !important;)...

或者您也可以将其他样式表样式的选择器添加到您的样式中,这样该样式就不会再超过您的样式了。

你应该“检查”元素! (右键单击它,“检查元素”)找到该特定元素的活动和覆盖规则!您可以在“检查器”窗口的右下角找到这些信息,然后打开。除了当前活动的样式,您还可以找到定义样式的样式表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    • 2018-11-02
    • 1970-01-01
    • 2022-12-15
    相关资源
    最近更新 更多