仅选择元素的第一个特定类型的子元素

Rya*_*yan 1 css css-selectors

我要选择的第一个孩子<body>是一个<div>,并且只有该元素.

我在为我想要的元素制定正确的选择器时遇到了麻烦.我可以简单地给它一个ID,但现在我很好奇这是否可能.

在这样的简单情况下:

<body>
  <div></div>
</body>
Run Code Online (Sandbox Code Playgroud)

我可以使用子选择器:

body > div {
    margin: 0 auto 0 auto;
    width: 800px;
}
Run Code Online (Sandbox Code Playgroud)

但是如果下面有两个<div>元素,现在会发生什么<body>

<body>
  <div></div>
  <div></div>
</body>
Run Code Online (Sandbox Code Playgroud)

好吧,现在我可以使用first-child伪类来进行选择.这非常有效:

body > div:first-child {
    margin: 0 auto 0 auto;
    width: 800px;
}
Run Code Online (Sandbox Code Playgroud)

但等一下.如果有人去<body>我的另一个孩子元素之前<div>怎么办?

<body>
  <a name="top"></a>
  <div></div>
  <div></div>
</body>
Run Code Online (Sandbox Code Playgroud)

<div>在这种情况下,我如何只选择第一个孩子(一般情况下)?

I a*_*ica 7

尝试使用第一个类型的选择器

body > div:first-of-type
{
    margin: 0 auto 0 auto;
    width: 800px;
}
Run Code Online (Sandbox Code Playgroud)

[编辑]当你在它时,检查第n类型.

[编辑]添加了一个子选择器.