跳转至

CSS的复合选择器

复合选择器建立在基础选择器之上,对基本选择器进行组合形成

image1

选择器 作用 特征 隔开符号 用法
后代选择器 用来选择后代元素 可以选择低于这一级别的 空格 .nav a{}
子代选择器 选择最近一级元素 只选择下一级别 大于 .nav>p{}
并集选择器 选择某些相同样式的元素 可以用于集体声明 逗号 .nav,.header{}
链接伪类选择器 选择不同状态的链接 和链接相关

a{}

a:hover

:focus选择器 选择获得光标的表单 和表单相关 Input:focus

一、后代选择器(包含选择器)

元素1 元素2 {样式声明;}

对元素2操作 选择元素1里面的所有元素2(后代元素) 注意: 1,元素1和元素2 空格分开 2,元素1父级,元素2子集,最终选择的是元素2 3,元素2只要是元素1后代即可 4,元素1,元素2可以是任意基础选择器

image2

<head>

<style>

/* 我想要把ol里面的小li选出来改为pink */

ol li {

color: pink;

}

/* 中国 山东 济南 蓝翔 */

ol li a {

color: red;

}

.nav li a {

color: yellow;

}

</style>

</head>

<body>

<ol>

变态写法

<li>我是ol 的孩子</li>

<li>我是ol 的孩子</li>

<li>我是ol 的孩子</li>

<li><a href="#">我是孙子</a></li>

</ol>

<ul>

<li>我是ul 的孩子</li>

<li>我是ul 的孩子</li>

<li>我是ul 的孩子</li>

<li><a href="#">不会变化的</a></li>

</ul>

<ul class="nav">

<li>我是ul 的孩子</li>

<li>我是ul 的孩子</li>

<li>我是ul 的孩子</li>

<li><a href="#">不会变化的</a></li>

<li><a href="#">不会变化的</a></li>

<li><a href="#">不会变化的</a></li>

<li><a href="#">不会变化的</a></li>

</ul>

<\body>

二.子代选择器

元素1 > 元素2 {样式声明;}

元素2是元素1的直接后代,选择最近一级的子元素 Eg。div>p{样式声明} 注意 1,元素1和元素2中间大于号隔开 2,元素1父级,元素2子集,最终选择元素2

三、并集选择器

元素1,元素2{样式声明;}

可以选择多组标签,同时为他们定义相同样式,集体声明 image3

<head>

….

<style>

/* 要求: 请把熊大和熊二改为粉色 还有 小猪一家改为粉色 */

div,

p,

.pig li {

color: pink;

}

</style>

</head>

<body>

<div>熊大</div>

<p>熊二</p>

<span>光头强</span>

<ul class="pig">

<li>小猪佩奇</li>

<li>猪爸爸</li>

<li>猪妈妈</li>

</ul>

</body>

注意 1,约定的语法规范,我们并集选择器喜欢竖着写 2,一定要注意,最后一个选择器 不需要加逗号

四、伪类选择器

用于给某类选择器添加特殊效果 ==最大特点是用冒号表示== 有很多种,重点看链接伪类、结构伪类

1、链接伪类选择器

a:link 选择所有未被访问的链接
a:visited 选择所有已被访问的链接
a: hover 选择鼠标指针位于其上的链接
a: active 选择活动链接(鼠标按下未弹起的链接)

/* 1.未访问的链接 a:link 把没有点击过的(访问过的)链接选出来 */

a:link {

color: #333;

text-decoration: none;

}

/*2. a:visited 选择点击过的(访问过的)链接 */

a:visited {

color: orange;

}

/*3. a:hover 选择鼠标经过的那个链接 */

a:hover {

color: skyblue;

}

/* 4. a:active 选择的是我们鼠标正在按下还没有弹起鼠标的那个链接 */

a:active {

color: green;

}

注意 ==1:严格按照LVHA顺序书写 link-visited-hover-active== 2给链接指定样式要单独指定 3.实际开发写法

<style>

a {

color: #333;

text-decoration: none;

}

a:hover {

color: #369;

text-decoration: underline;

}

</style>

2.:focus伪类选择器

用于获取获得焦点的的表单元素 焦点就是光标,一般情况\<input>类表单元素才能获取,因此这个选择器也主要针对表单元素来说 image4

<head>

...

<title>focus伪类选择器</title>

<style>

/* // 把获得光标的input表单元素选取出来 */

input:focus {

background-color: pink;

color: red;

}

</style>

</head>

<body>

<input type="text">

<input type="text">

<input type="text">

</body>

五、总结

选择器 作用 特征 隔开符号 用法
后代选择器 用来选择后代元素 可以选择低于这一级别的 空格 .nav a{}
子代选择器 选择最近一级元素 只选择下一级别 大于 .nav>p{}
并集选择器 选择某些相同样式的元素 可以用于集体声明 逗号 .nav,.header{}
链接伪类选择器 选择不同状态的链接 和链接相关

a{}

a:hover

:focus选择器 选择获得光标的表单 和表单相关 Input:focus