【问题标题】:How to select inner divs with the IDs?如何选择带有 ID 的内部 div?
【发布时间】:2012-01-10 02:36:16
【问题描述】:

我想通过指定 ID 来选择一个 div 中的一个 div。

具有指定 ID 的 HTML

<div id="divOuter">
   <div id="divInner">
   </div>
</div>

如果我想通过更直接地使用 ID 选择器来选择 divInner,我应该使用什么?

我试过了

div#divOuter> div#divInner 

但不能让它工作。

【问题讨论】:

  • 为什么不只是 #divInner ?应该只有一个具有该 ID 的,对吧?
  • div#divOuter &gt; div#divInner 怎么不工作?
  • 顺便说一句,“divInner”和“divOuter”对于您的元素来说是错误的 ID。 “内”和“外”就足够了。
  • @BoltClock:可能是因为大多数版本的 IE 不支持子选择器。
  • @PatrikAkerstrand:嗯,你说得对; 9个版本中,1、2、3、4、5、6不支持。

标签: html css css-selectors


【解决方案1】:

由于 ID 必须是唯一的,

#divInner

足够了。

如果您有更多具有相同 ID 的元素,则必须更改它(您可能希望使用类来代替)。

更新:

好的,我明白你的意思了。但是您的选择器是正确的:http://jsfiddle.net/fkling/AsPam/

要么你有另一个规则覆盖了这条规则,要么你的结构不同。

更新 2:

哦,正如其他人所指出的那样,the child selector is not supported by IE6。那么你必须省略它:

div#divOuter div#divInner 

【讨论】:

  • 在同一页面中是的,独一无二。但是,如果我有许多可能具有此 ID 的页面并且我在一个单独的 style.cs 中有样式怎么办?我在考虑以这种方式指定 ID 可以降低覆盖其他 ID 的风险。
  • 菲利克斯,我认为 div#divOuter div#divInner 不起作用。我不得不使用 div#divInner 来选择 divInner。不知道为什么...但很高兴知道 > 某些 IE 版本不支持 childe 选择器。
【解决方案2】:

由于 ID 是唯一的,因此您真正需要的是

#divInner
{
    /*styles*/
}

这将选择 HTML 元素的 ID 属性并应用样式。

如果您需要对多个元素重复样式,请使用类

.divInner
{
    /*styles*/
}

【讨论】:

    【解决方案3】:
    #divOuter div{...}
    

    #divInner{...}
    

    【讨论】:

      【解决方案4】:

      对于初学者(我知道这可能是一个错字),你检查过拼写吗?

      在选择的时候,你似乎想使用id标签,换句话说,你需要做的就是像上面每个人所说的那样:#idInner{...}

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-15
        • 2012-07-21
        • 1970-01-01
        • 2021-04-26
        • 1970-01-01
        • 1970-01-01
        • 2022-12-05
        • 1970-01-01
        相关资源
        最近更新 更多