📅  最后修改于: 2023-12-03 15:28:21.788000             🧑  作者: Mango
HTML是前端开发的基石,了解HTML选择器的使用可以让你更加高效地开发Web应用。本文会介绍HTML选择器的基本用法以及几个常用的选择器。
HTML基本选择器是使用元素名称、class或id来选择HTML元素的。下面是它们的用法:
p
。.classname
来选择class为classname的元素,如选择所有class为“intro”的元素:.intro
。#idname
来选择id为idname的元素,如选择id为“myParagraph”的元素:#myParagraph
。下面是一个例子,展示如何使用这些基本选择器:
<!DOCTYPE html>
<html>
<head>
<title>基本选择器</title>
<style>
.intro {
background-color: yellow;
}
</style>
</head>
<body>
<h1>标题</h1>
<p>这是一个段落元素。</p>
<p class="intro">这是一个使用intro class的段落元素。</p>
<p id="myParagraph">这是一个使用myParagraph id的段落元素。</p>
</body>
</html>
这个例子中,所有段落元素被选择,使用intro
class的段落元素有黄色的背景色,使用myParagraph
id的段落元素的背景色没有改变。
复合选择器是使用两个或多个基本选择器组合起来创建的选择器。下面是几个常见的复合选择器:
p, h1
。p strong
。ul > li
。p + *
。#item2 ~ *
。下面是一个例子,展示如何使用这些复合选择器:
<!DOCTYPE html>
<html>
<head>
<title>复合选择器</title>
<style>
p, h1 {
color: red;
}
li > a {
background-color: #f9f9f9;
font-weight: bold;
}
</style>
</head>
<body>
<h1>标题1</h1>
<h2>标题2</h2>
<p>这是一个段落元素。</p>
<p class="intro"><strong>使用intro class的段落元素的<strong>strong</strong>元素</strong></p>
<ul>
<li><a href="#">项1</a></li>
<li><a href="#">项2</a></li>
<li><a href="#">项3</a></li>
</ul>
<p>这是另一个段落元素。</p>
<p class="intro"><em>使用intro class的段落元素的<strong>em</strong>元素</em></p>
<p>这是最后一个段落元素。</p>
</body>
</html>
这个例子中,所有段落元素和所有标题元素都是红色的,列表中使用a
元素的li元素具有粗体字体和灰色的背景色。
属性选择器是使用属性名称和属性值来选择元素的。下面是它们的用法:
[class=intro]
。[class~=intro]
。[class|=intro]
。[title^=W3School]
。[href$=.pdf]
。[title*=W3School]
。下面是一个例子,展示如何使用这些属性选择器:
<!DOCTYPE html>
<html>
<head>
<title>属性选择器</title>
<style>
[title] {
font-weight: bold;
}
[title~=flower] {
color: yellow;
}
[href$=.pdf] {
color: red;
}
</style>
</head>
<body>
<h1 title="这是标题">标题</h1>
<p title="这是一朵花。">这是一个段落元素。</p>
<p class="intro" title="这也是一朵花。">这是另一个段落元素。</p>
<a href="https://www.w3schools.com/html/mypdf.pdf">链接到PDF文件</a>
</body>
</html>
在这个例子中,所有具有title
属性的元素都加粗了,具有title
属性且值包含“flower”的元素都变成了黄色。所有链接到以“.pdf”结尾的文件的链接字体颜色都变成了红色。
伪类选择器是使用虚假类来选择元素的。下面是它们的用法:
:nth-child(2)
。:nth-last-child(2)
。下面是一个例子,展示如何使用这些伪类选择器:
<!DOCTYPE html>
<html>
<head>
<title>伪类选择器</title>
<style>
a:active, a:hover {
font-weight: bold;
color: red;
}
input[type=text]:focus {
background-color: yellow;
}
li:first-child {
color: blue;
}
li:nth-child(even) {
background-color: #f2f2f2;
}
li:nth-child(3) {
background-color: yellow;
}
li:last-child {
color: green;
}
</style>
</head>
<body>
<h1>标题</h1>
<a href="#">链接1</a>
<a href="#">链接2</a>
<label for="input1">文本框:</label>
<input type="text" id="input1">
<ul>
<li>项1</li>
<li>项2</li>
<li>项3</li>
<li>项4</li>
<li>项5</li>
<li>项6</li>
<li>项7</li>
</ul>
</body>
</html>
在这个例子中,链接在悬停或点击时都变成了加粗字体和红色字体颜色。文本框在获取焦点时有黄色背景色。列表的第一个项是蓝色字体颜色,偶数项的背景色是灰色的。列表的第3项有黄色背景色,最后一个项是绿色的。