html - 为什么 ul 列表中的 First-of-type 不起作用

标签 html css css-selectors html-lists pseudo-class

代码

ul a:first-of-type {
  color: red;
}
<ul>
  <li>Item 1</li>
  <li>Item 2</li>
  <li><a href="#">Item 3</a>
  </li>
  <li>Item 4</li>
  <li>Item 5</li>
  <li>Item 6</li>
  <li>Item 7</li>
  <li>Item 8</li>
  <li>Item 9</li>
  <li>Item 10</li>
  <li>Item 11</li>
  <li><a href="#">Item 12</a>
  </li>
  <li>Item 13</li>
  <li>Item 14</li>
  <li>Item 15</li>
  <li>Item 16</li>
</ul>

Result Fiddle

为什么 a 元素 12 被选中?它不是同类中的第一个 sibling ,而是最后一个。

最佳答案

:first-of-type 指的是 type 因为 ali 的 child 如您所见,没有更多a li 中的兄弟元素所以它将选择每个 first-of-typeali

看看这个带有 li 和 2 a 的片段是 li 的 child 它只会选择第一个 a :

片段

ul a:first-of-type {
  color: red;
}
<ul>
  <li>Item 1</li>
  <li>Item 2</li>
  <li><a href="#">Item 3a</a>
    <a href="#">Item 3b</a>
  </li>
  <li>Item 4</li>
  <li>Item 5</li>
  <li>Item 6</li>
  <li>Item 7</li>
  <li>Item 8</li>
  <li>Item 9</li>
  <li>Item 10</li>
  <li>Item 11</li>
  <li><a href="#">Item 12</a>
  </li>
  <li>Item 13</li>
  <li>Item 14</li>
  <li>Item 15</li>
  <li>Item 16</li>
</ul>

如果您只想定位元素 3,您可以使用 nth-of-type li ,像这样:

片段

ul li:nth-of-type(3) a {
  color: red;
}
<ul>
  <li>Item 1</li>
  <li>Item 2</li>
  <li><a href="#">Item 3</a>
  </li>
  <li>Item 4</li>
  <li>Item 5</li>
  <li>Item 6</li>
  <li>Item 7</li>
  <li>Item 8</li>
  <li>Item 9</li>
  <li>Item 10</li>
  <li>Item 11</li>
  <li><a href="#">Item 12</a>
  </li>
  <li>Item 13</li>
  <li>Item 14</li>
  <li>Item 15</li>
  <li>Item 16</li>
</ul>

关于html - 为什么 ul 列表中的 First-of-type 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35713922/

相关文章:

javascript - 无法使用 Javascript 验证两位数的月份

html - 我想改变我的滚动条的CSS?

html - 列 div 中的 float 被忽略

css - Zurb Foundation 是否使用 rem_calc() 返回准确的 rems?输出似乎关闭

javascript - 在没有 jquery 的情况下获取第一个 <li>

css - webView,视口(viewport),如何隐藏滚动时显示的滚动条?

html - CSS - 在容器中定位不同的元素

javascript - 以用户身份自定义网站 UI

javascript - 使用第 n 个子选择器更改字体颜色 mousedown/mouseup

python - 如何使用 selenium 从内联 css 获取背景图像