【问题标题】:Css - how to select the first of type on page [duplicate]Css - 如何选择页面上的第一个类型[重复]
【发布时间】:2015-04-29 17:14:25
【问题描述】:

我的大部分网页都有 H2,显然还有 H1。

H2 可以在 divs/articles/sections 等内部 - 换句话说,没有保证结构。

这是一个典型的场景:

<h1></h1>
<section>
    <h2>I want this one</h2>
    <p></p>
</section>
<section>
    <h2>But not this one</h2>
    <p></p>
</section>

我想要一个始终保证页面上第一次出现的选择器 - 在这种情况下,无论它可能是第一个 H2。

我查看并尝试了 first-of-type 选择器,但发现它适用于自己的容器,因此这里选择了每个 H2,因为它是其父部分标记中的第一个。

肯定在 2015 年,我们能够做到这一点。

【问题讨论】:

  • 我不确定是否存在具有您寻求的功能的选择器,但如果您的所有&lt;h2&gt; 都存在于&lt;section&gt; 中,您可以使用第一个类型选择器。这对你有用吗?
  • 他们在这种情况下会这样做,但我必须专门为结构不同的每个页面变体映射一个选择器,因此不完全有效的 css。
  • @JohnOhara 我认为 Javascript 将是你最好的选择,我想不出只通过 CSS 来做到这一点的方法。
  • “肯定在 2015 年,我们能够做到这一点。”...不...在这种情况下,Javascript 是唯一的解决方案。

标签: css css-selectors


【解决方案1】:

使用 jquery。老实说,我尝试了仅使用 css 的方法,但失败了。顺便说一句,很好的问题。

<script>
$(document).ready(function(){
$( "h2:first" ).css( "color", "red" );
});

</script>

【讨论】:

  • document.querySelector('h2') 用于非 jQuery 解决方案 :)
【解决方案2】:

您可以简单地使用 css 选择器first-of-type

定义和用法 :first-of-type 选择器匹配每个元素 这是其父级的第一个特定类型的子级。

提示:这与 :nth-of-type(1) 相同。

h2:first-of-type {
    color: red;
}

或作为 jQuery 解决方案:

$('h2').first().css('color','red');

【讨论】:

  • 再次阅读问题。如果您需要更多帮助来理解这个问题,请查看我的其他 cmets。并且用户没有要求 jQuery 解决方案。
  • jquery 解决方案正是您所需要的..
  • 我不是 OP,OP 没有要求 jQuery 解决方案,否则他们会在问题上标记或编辑问题。
  • 好吧,但他并没有说他只需要在 css 中使用它.. 只在 css 中是不可能的 imo。
  • 如问题中所述,first-of-type 在这种情况下不起作用。
猜你喜欢
  • 2018-09-29
  • 2018-03-16
  • 1970-01-01
  • 2018-11-08
  • 2012-12-31
  • 1970-01-01
  • 2015-11-03
  • 2014-04-18
  • 2022-08-18
相关资源
最近更新 更多