17

我的示例将在 HTML 文件中,这表示您无权更改 - 只有通过样式表的 CSS。您能否像使用 Classes 一样定位 ID 中的 ID?

#id1 #id2 {styles...}

类似于使用 CSS 的方式:

.class1 .class2 {styles...}

我可能只是在这里有一个主要的大脑故障。

4

7 回答 7

23

是的,像这样:

#one #two {
    color: purple;
}

将选择:

<div id="one">
    <div id="two"></div>
</div>

但这实际上是没有必要的,因为每页只应该有一个同名的 id,所以选择器#two {}本身就可以了。

于 2013-08-08T18:41:09.613 回答
8

是的,你可以这么做; 这是完全有效的。但这通常也是没有意义的,因为 ID 在页面中必须是唯一的,因此只需选择单个 ID 就足以准确地选择您想要的元素;您不需要任何额外的父选择器来限定它,无论是另一个 ID 还是一个类或其他任何东西。

我可以看到它的一个用例,其中您有一个 ID 是动态的元素,它出现在页面中的位置,无论出于何种原因可能出现在不同的位置,并且您希望它根据它在出现的页面。

为此,拥有#id1 #id2选择器可能是有效的。但这可能是一个相当罕见的用例,即使对于这种用法,类也可能是更适合这项工作的工具。

于 2013-08-08T18:44:23.793 回答
3

是的

#id1 #id2 {

}

这将针对所有#id2内部#id1

演示:http: //jsfiddle.net/DcDqa/

于 2013-08-08T18:43:08.293 回答
1

是的。您可以在您喜欢的任何选择器之间放置组合器。

于 2013-08-08T18:42:11.193 回答
1

是的你可以

#id1 #id2 {
    height:200;
}

并且同样

  .class1 #id1 {
    height:200;
  }

  .class1 input[type="radio"] {
    border: 1px solid #ccc;
  }

  h1, p{
  }
于 2013-08-08T18:44:01.630 回答
0

是的

#first #second{
 color: #000080;
}

<div id="first">
  <p id="second">This is text and will be dark blue</p>
</div>
于 2013-08-08T18:43:03.187 回答
0

动态创建的给定元素可能需要一个 ID 才能支持某些功能。但是,当同一元素存在于另一个元素中时,它可能需要与它存在于另一个元素中不同的属性。因此,在某些情况下,在另一个选择器中使用 ID 选择器的想法可能是有意义的。

于 2021-02-18T03:37:31.307 回答