复合选择器是建立在基础选择器的基础上的,对基本选择器进行组合形成的
复合选择器可以更精确的,更高效的选择目标元素(标签),精确指出想要选择的标签,避免多选,错选。
复合选择器是由两个或多个基础选择器,通过不同方式组合而成的
常用的复合选择器:
- <ol>
- 加倍方法
- <li>我是ol 的孩子li>
- <li>我是ol 的孩子li>
- <li>我是ol 的孩子li>
- <li><a href="#">我是孙子a>li>
- ol>
像这种情况下,我们要选择里面的a标签的话,需要用到后代选择器来定位,而不是给全部的li标签都加属性,当然style属性是添加在head标签里面的,没写在body标签里面
- <style>
- ol li a {
- color: red;
- }
-
- style>
像这样:
- <ul class="nav">
- <li>我是ul 的孩子li>
- <li>我是ul 的孩子li>
- <li>我是ul 的孩子li>
- <li><a href="#">不会变化的a>li>
- ul>
既有类选择器,又有标签选择器的,我们需要通过后代选择器,逐层深入,精确定位我们想要的添加属性标签位置
- <style>
- .nav li a {
- color: yellow;
- }
- style>
特点:
子选择器只能选择某一元素的子元素,不能选择其孙子元素,即只能选择器最近一级的元素
需要使用大于号(英文状态下)
如:
- <style>
- .nav>a {
- color: red;
- }
- style>
- <body>
- <div class="nav">
- <a href="#">我是儿子a>
- <p>
- <a href="#">我是孙子a>
- p>
- div>
- body>
特点:
并集选择器可以选择多组标签, 同时为他们定义相同的样式,通常用于集体声明。并集选择器是各选择器通过英文逗号(,)连接而成,任何形式的选择器都可以作为并集选择器的一部分。
使用逗号隔开
- html>
- <html lang="en">
- <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>
-
- html>
特点:
元素1 和 元素2 中间用逗号隔开
逗号可以理解为和的意思
并集选择器通常用于集体声明
分为:链接伪类,结构伪类,
伪类选择器用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或选择第1个,第n个元素。
伪类选择器书写最大的特点是用冒号(:)表示,比如 :hover 、 :first-child 。
a:link 没有点击过的(访问过的)链接
a:visited 点击过的(访问过的)链接
a:hover 鼠标经过的那个链接
a:active 鼠标正在按下还没有弹起鼠标的那个链接
为了确保生效,请按照 LVHA 的循顺序声明 :link-:visited-:hover-:active。
- html>
- <html lang="en">
-
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta http-equiv="X-UA-Compatible" content="ie=edge">
- <title>复合选择器之链接伪类选择器title>
- <style>
- /* 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;
- }
- style>
- head>
-
- <body>
- <a href="#">小猪佩奇a>
- <a href="http://www.xxxxxxxx.com">未知的网站a>
- body>
-
- html>
:focus 伪类选择器用于选取获得焦点的表单元素。
焦点就是光标,一般情况 类表单元素才能获取
- html>
- <html lang="en">
-
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta http-equiv="X-UA-Compatible" content="ie=edge">
- <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>
-
- html>
