Css选择器定位元素(超详细)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

  CSS选择器 是用来选择 HTML 元素的一种方式,它是 CSS 中非常重要的一部分。它使得我们可以基于元素的 id、class、类型、属性或其他特性来应用样式或用于爬虫定位。在自动化的上下文中,CSS选择器也可以用于定位和拟人操作。

一、基础选择器

1. 元素选择器(Type Selector)

  用于选择特定的 HTML 元素。
HTML 示例:

<div>
  <p>This is a paragraph.</p>
  <p>This is another paragraph.</p>
</div>

CSS路径:

div p

选择 div 元素内的所有 p 元素。

2. 类选择器(Class Selector)

  根据元素的类名来定位元素。
HTML 示例:

<div class="container">
  <p class="text">This is a paragraph.</p>
  <p class="text">This is another paragraph.</p>
</div>

CSS路径:

.container .text

选择 container 类下的所有 text 类元素。

3. ID选择器(ID Selector)

  根据元素的类名来定位元素。
HTML 示例:

<div id="header">
  <h1>Welcome to My Website</h1>
</div>

CSS路径:

#header h1

选择 id 为 header 的元素内的 h1 元素。

二、组合选择器

1. 后代选择器(Descendant Selector)

  选择某个元素内部的所有后代元素。
HTML 示例:

<div class="container">
  <p class="text">First paragraph</p>
  <div class="inner">
    <p class="text">Second paragraph inside div</p>
  </div>
</div>

CSS路径:

.container .text

选择 .container 内所有类名为 .text 的元素,不论它们的层级深度。

2. 子元素选择器(Child Selector)

  选择某个元素下的直接子元素。
HTML 示例:

<div class="container">
  <p class="text">First paragraph</p>
  <div class="inner">
    <p class="text">Second paragraph inside div</p>
  </div>
</div>

CSS路径:

.container > .text

选择 .container 下直接子元素 .text 类的元素。

3. 相邻兄弟选择器(Adjacent Sibling Selector)

  选择紧接在某个元素之后的第一个兄弟元素。
HTML 示例:

<div>
  <h1>Header</h1>
  <p>First paragraph</p>
  <p>Second paragraph</p>
</div>

CSS路径:

h1 + p

选择紧跟在 h1 元素后的第一个 p 元素。

4. 通用兄弟选择器(General Sibling Selector)

  选择某个元素后面所有的兄弟元素。
HTML 示例:

<div>
  <h1>Header</h1>
  <p>First paragraph</p>
  <p>Second paragraph</p>
</div>

CSS路径:

h1 ~ p

选择 h1 元素后面的所有 p 元素。

三、属性选择器(Attribute Selector)

1. 选择具有指定属性的元素

  选择具有特定属性的元素。
HTML 示例:

<input type="text" placeholder="Enter your name">
<input type="password" placeholder="Enter your password">

CSS路径:

input[type="text"]

选择所有type="text"的元素。

2. 选择包含指定属性的元素

  选择具有特定属性的元素。
HTML 示例:

<a href="https://www.example.com">Example Link</a>
<a href="https://www.another.com">Another Link</a>

CSS路径:

a[href]

选择所有具有 href 属性的 元素。

3. 选择属性值包含特定文本的元素

  选择具有特定属性值的元素。
HTML 示例:

<a href="https://www.example.com">Example Link</a>
<a href="https://www.another.com">Another Link</a>

CSS路径:

a[href="https://www.example.com"]

选择 href 属性为指定 URL 的 元素。

四、伪类选择器(Pseudo-class Selector)

1. :first-child 选择父元素的第一个子元素

  选择作为父元素的第一个子元素。
HTML 示例:

<div>
  <p>First paragraph</p>
  <p>Second paragraph</p>
</div>

CSS路径:

div p:first-child

选择父元素下的第一个 p 元素。

2. :last-child 选择父元素的最后一个子元素

  选择作为父元素的最后一个子元素。
HTML 示例:

<div>
  <p>First paragraph</p>
  <p>Second paragraph</p>
</div>

CSS路径:

div p:last-child

选择父元素下的最后一个 p 元素。

3. :nth-child(n) 选择父元素的第n个子元素

  选择父元素中的第 n 个子元素。
HTML 示例:

<ul>
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
</ul>

CSS路径:

ul li:nth-child(2)

选择父元素下的第二个 p 元素。

4. :hover 选择鼠标悬停时的元素

  选择鼠标悬停时的元素。
HTML 示例:

<a href="#">Hover me!</a>

CSS路径:

a:hover

选择当鼠标悬停在 a 元素上时。

5. :focus 选择获得焦点的元素

  选择获得焦点的元素。
HTML 示例:

<input type="text" placeholder="Enter your name">

CSS路径:

input:focus

选择获得焦点的 input 元素。

五、伪元素选择器(Pseudo-element Selector)

1. ::before 在元素内容前插入内容

  在元素内容前插入内容。
HTML 示例:

<div class="note">Important Note</div>

CSS路径:

.note::before

2. ::after 在元素内容后插入内容

  在元素内容后插入内容。
HTML 示例:

<div class="note">Important Note</div>

CSS路径:

.note::after

3. ::first-letter 选择文本的第一个字母

  选择文本的第一个字母。
HTML 示例:

<p>Once upon a time, there was a princess.</p>

CSS路径:

p::first-letter

选择 p 元素文本中的第一个字母。

4. ::first-line 选择文本的第一行

  选择文本的第一行。
HTML 示例:

<p>Once upon a time, there was a princess.</p>

CSS路径:

p::first-line

选择 p 元素中的第一行文本。

六、通配符选择器

1. * 选择所有元素

  选择页面中的所有元素。
HTML 示例:

<div>
  <p>Paragraph 1</p>
  <a href="https://example.com">Example Link</a>
</div>

CSS路径:

*

选择页面中的所有元素。


总结

通过CSS选择器路径,我们可以精确地定位页面上的元素。常用的选择器路径包括:

  1.元素选择器(Type Selector)
  2.类选择器(Class Selector)
  3.ID选择器(ID Selector)
  4.组合选择器(Descendant, Child, Sibling Selectors)
  5.属性选择器(Attribute Selector)
  6.伪类选择器(Pseudo-classes)
  7.伪元素选择器(Pseudo-elements)

这些选择器路径可以通过不同的层级组合来形成复杂的选择器,从而更精确地选择页面元素,进行样式应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高坚果墙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值