提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
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)
这些选择器路径可以通过不同的层级组合来形成复杂的选择器,从而更精确地选择页面元素,进行样式应用。