Html 如何通过CSS选择非唯一元素

Html 如何通过CSS选择非唯一元素,html,css,css-selectors,Html,Css,Css Selectors,编辑: 对这个问题稍作修改: 假设我在一个页面中有很多段落和其他元素: <h2>title 1</h2> <p>paragraph one</p> <p>paragraph 2</p> <p>paragraph 3 with a <href="dummy.com>hyperlink</a></p> <h2>title 2 </h2> 标题1 第一段 第

编辑:

对这个问题稍作修改:

假设我在一个页面中有很多段落和其他元素:

<h2>title 1</h2>
<p>paragraph one</p>
<p>paragraph 2</p>
<p>paragraph 3 with a <href="dummy.com>hyperlink</a></p>
<h2>title 2 </h2>
标题1
第一段

第2款


带有的第3段可以使用第一个子选择器

第一个子选择器选择作为其父元素的第一个子元素的每个元素并设置其样式:

示例:

p:first-child { 
    background-color: yellow;
}

如果要在不使用id或类的情况下选择第一个段落元素, 使用此选项:

p:first-child { 
    background-color: yellow;
}
p:类型的第一个
{  
颜色:黄色;
}
标题1
第1款

标题2
第2段

如果只想选择第一个:

p:first-child {  }

您可以使用
css psedo
选择器

p:first-of-type{
   color: red;
}
试试这个:

<style>
    .red {
        color:red; /* give more styles here*/
    }
</style>

<h2> Title 1 </h2>
<p class="red">paragraph 1</p>
<h2>title 2 </h2>
<p>paragraph 2</p>

瑞德先生{
颜色:红色;/*在此处提供更多样式*/
}
标题1
第1段

标题2 第2款


您需要使用

<h2> Title 1 </h2>
<p class="my-class">paragraph 1</p>
<h2>title 2 </h2>
<p>paragraph 2</p>

您也可以使用
id
(#css表单中的选择器),但如果您需要将相同的样式应用于其他内容,则使用class会更好。(同一页中不能有两个具有相同值的id)

您应该使用
:类型的第一个

p:first-of-type { 
    background-color: yellow;
}

:第一个子节点将不起作用,因为
标题1
是其父节点的实际第一个子节点。

FWIW-以下是一个在IE7中不起作用的解决方案+

使用

p{
颜色:番茄;
}
p~p{
颜色:黑色;
}
标题1
第1款

标题2
第2段

我不敢相信这个问题会有多少错误答案。你的答案在于第一个孩子。只是没有在给定的示例中实现。是的,它不会..需要使用
类型的第一个
@user25312说到错误的答案…您的评论不正确<代码>:第一个孩子
这是
h2
。你可能想删除那条评论。这真的是我的爱好。喜欢这个技巧,支持得好吗?有没有办法用它来选择第三个p、第四个p等?它是非常受支持的。IE 7+。
~
是一个CSS3选择器。它恰好在IE7中得到支持。@BoltClock谢谢,我没有意识到这一点。我更新了答案。使用这种选择器不适合初学者,我认为最好使用类。如果他改变了他的DOM,其他任何东西都可能停止工作。@Kalilz初学者也必须学习。我们在这里教导人们,帮助人们提高,而不仅仅是完成他们的工作。这就是为什么如此,对吗?@LeoDeng我同意,但在css中学习的第一件事是类的使用,因为这是你95%的时间都在使用的,所以我认为教他类的使用比给他一个合适的选择器更有用。@Kalilz,我又读了一遍题名,特别是我注意到他使用的短语“非唯一”。我认为询问者已经知道如何使用指定的选择器来完成任务。:)嘿,伙计们,谢谢你们的回答。Agree类在这方面会更好(而且更容易),但是对于这个特定的任务,我无法访问实际的页面HTML来向元素添加类,所以我只能使用CSS来选择它
p:first-of-type { 
    background-color: yellow;
}
p {
   /* styles first p here */
}
p ~ p {
  /* styles second (and additional) p here */
}