什么是复合选择器?

在css中,可以根据选择器的类型把选择器分为基础选择器和复合选择器,复合选择器是建立在基础选择器之上,对基本选择器进行组合形成的。

  1. 复合选择器可以更准确、更高效的选择目标元素(标签)
  2. 复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的
  3. 常用的复合选择器包括:后代选择器、子选择器、并集选择器、伪类选择器等

后代选择器:(重要)又称为包含选择器,可以选择父元素里面子元素。其写法就是把外层标签写在前面,内层标签写在后面,中间空格分隔。当标签发生嵌套时,内层标签就成为外层标签的后代。

语法:

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

上述语法表示选择元素1里面的所有元素2(后代元素)

  1. 元素1和元素2中间用空格隔开
  2. 元素1是父级,元素2是子级,最终选择的是元素2
  3. 元素2可以是儿子,也可以是孙子等,只要是元素1的后代即可
  4. 元素1和元素2可以是任意基础选择器
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>复合选择器之后代选择器</title><style>/* 我想要把ol里面的li选出来改为pink */ol li {color: pink;}ol li a {color: red;}.nav li a {color: aqua;}</style></head><body><ol>hsjfhjkf<li>我是ol的孩子</li><li>我是ol的孩子</li><li>我是ol的孩子</li><li><a href="#">lianjie</a></li></ol><ul><li>我是ul的孩子</li><li>我是ul的孩子</li><li>我是ul的孩子</li><li><a href="#">fjaj </a></li></ul><ul class="nav"><li>我是ul的孩子</li><li>我是ul的孩子</li><li>我是ul的孩子</li><li><a href="#">fjaj </a></li><li><a href="#">fjaj </a></li><li><a href="#">fjaj </a></li><li><a href="#">fjaj </a></li></ul></body></html>

子选择器:(重要)只能以及子元素,选择作为某元素的最近一级子元素,简单理解就是选亲儿子元素。

语法:

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

上述语法表示选择元素1里面的所有直接后代(子元素)元素2

  1. 元素1和元素2中间用大于号隔开
  2. 元素1是父级,元素2是子级,最终选择的是元素2
  3. 元素2必须是亲儿子,其孙子、重孙子之类都不归他管,你也可以叫他亲儿子选择器
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>复合选择器之子元素选择器</title><style>.nav>a {color: pink;}</style></head><body><div class="nav"><a href="#">我是儿子</a><p><a href="#">我是孙子</a></p></div></body></html>

并集选择器:(重要)可以选择多组标签,同时为他们定义相同的样式,通常用于集体声明。

并集选择器是各选择器通过英文逗号连接而成,任何形式的选择器都可以作为并集选择器的一部分。

语法:

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

上述语法表示选择元素1和元素2.

  1. 元素1和元素2中间用逗号隔开
  2. 逗号可以理解为和的意思
  3. 并集选择器通常用于集体声明
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>复合选择器之并集选择器</title><style>/* 要求:请把熊大和熊二改为粉色 *//* div,p {color: pink;} *//* 要求:请把熊大和熊二改为红色 还有小猪一家改为粉色 */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个、第n个元素。

伪类选择器书写最大的特点是用冒号(:)表示,比如:hover、:first-child

因为伪类选择器很多,比如有链接伪类、结构伪类等

链接伪类选择器:

a:link  选择所有未被访问的链接a:visited 选择所有已被访问的链接a:hover   选择鼠标指针位于其上的链接a:active  选择活动链接(鼠标按下未弹起的链接)
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>复合选择器之链接伪类选择器</title><style>/* 未访问的链接 a:link 把没有访问过的链接选出来 */a:link {color: #333;text-decoration: none;}/* a:visited 选择点击过的(访问过的)链接 */a:visited {color: orange;}/* a:hover 选择鼠标经过的那个链接 */a:hover {color: skyblue;}/* a:active 选择的是我们鼠标正在按下还没有弹起鼠标的那个链接 */a:active {color: pink;}</style></head><body><a href="#">小猪佩奇</a><a href="http://www.baidu.com">baidu</a></body></html>

链接伪类选择器注意事项:

  1. 为了确保生效,请按照lvha的顺序声明:link :visited :hover :active
  2. 记忆法:love hate
  3. 因为a链接在浏览器中具有默认样式,所以我们实际工作中都需要给链接单独指定样式。

链接伪类选择器实际工作开发中的写法:

a {color: #333;text-decoration: none;}/* a:hover 选择鼠标经过的那个链接 */a:hover {color: skyblue;text-decoration: underline;}
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>复合选择器之链接伪类选择器</title><style>a {color: #333;text-decoration: none;}/* a:hover 选择鼠标经过的那个链接 */a:hover {color: skyblue;text-decoration: underline;}</style></head><body><a href="#">小猪佩奇</a><a href="http://www.baidu.com">baidu</a></body></html>

 

:focus伪类选择器:用于选取获得焦点的表单元素。

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

input:focus {background-color:yellow;}
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>focus伪类选择器</title><style>/* 把获得光标的input表单元素选取出来 */input:focus {background-color: rgb(123, 214, 236);color: pink;}</style></head><body><input type="text"><input type="text"><input type="text"></body></html>

复合选择器总结:

选择器

作用

特征

使用情况

隔开符号及用法

后代选择器

用来选择后代元素

可以是子孙后代

较多

符号是空格.nav a

子代选择器

选择最近一级元素

只选亲儿子

较少

大于.nav>p

并集选择器

选择某些相同样式的元素

可以用于集体声明

较多

逗号.nav,.header

链接伪类选择器

选择不同状态的链接

跟链接相关

较多

重点记住a{}和a:hover实际开发的写法

:focus选择器

选择获得光标的表单

跟表单相关

较少

Input:focus记住这个写法

css复合选择器(后代选择器、子代选择器、并集选择器、链接伪类选择器、:focus选择器)相关推荐

  1. CSS复合选择器( 交集、 并集、后代、子元素、兄弟、伪类、伪元素)

    CSS复合选择器 总结 复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的,目的是为了可以选择更准确更精细的目标元素标签. :first-child与:first-of-type区别 :fi ...

  2. CSS复合选择器之链接伪类选择器及总结

    在某些大型购物网站.新闻网站中可以看到许许多多的链接,其中很多链接的样式都为黑色,当鼠标放到某一链接上的时候,链接的颜色也会变化,点击过后颜色也会变化.这就用到了CSS复合选择器中的链接伪类选择器. ...

  3. 复合选择器-链接伪类选择器(HTML、CSS)

    复合选择器-链接伪类选择器(HTML.CSS) <!DOCTYPE html> <html lang="en"><head><meta c ...

  4. css 伪类选择器(链接伪类选择器、结构伪类选择器、目标伪类选择器)

    css 伪类选择器(链接伪类选择器.结构伪类选择器.目标伪类选择器) 链接伪类选择器:顾名思义就是用于链接的伪类选择器.a的伪类标签有:a:link.a:visited.a:hover.a:activ ...

  5. 【温故知新】CSS学习笔记(链接伪类选择器)

    链接伪类选择器 伪类选择器用于向某些选择器添加特殊的效果,比如给链接添加特殊效果. 之前我们学过类选择器,以点"."开头,为了区分开来,伪类选择器则是以冒号":" ...

  6. 复合选择器之链接伪类选择器

    伪类选择器用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或选择第1个,第n个元素. 伪类选择器书写最大的特点是用冒号(:)表示,比如 :hover . :first-child . 因为伪类 ...

  7. html css链接伪类大全,什么是css链接伪类?

    什么是css链接伪类?下面本篇文章就来给大家介绍一下css链接伪类是什么?有哪些?有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 什么是css链接伪类? css链接伪类就是css内置 ...

  8. css伪类元素及选择器

    文章目录 伪类选择器使用 nth-child伪类选择器运用 伪元素:before和:after使用 伪类选择器使用 :first-child 选择某个元素的第一个子元素(IE6不支持):last-ch ...

  9. CSS(五):背景、列表、超链接伪类、鼠标形状控制属性

    一.背景属性 1.背景属性用来设置页面元素的背景样式. 2.常见背景属性 属性 描述 background-color 用来设置页面的背景色,取值如red,#ff0000 background-ima ...

最新文章

  1. 因果表征学习最新综述:连接因果科学和机器学习的桥梁
  2. 北京科技大学天津学院第三届智能车校内赛总决赛完美落幕
  3. 简单创建vsftp server
  4. golang连接mysql报错:this authentication plugin is not supported 解决方案
  5. 【Flutter】Flutter 开发环境搭建 ( Android Studio 下 Flutter / Dart 插件安装 | Flutter SDK 安装 | 环境变量配置 | 开发环境检查 )
  6. Python 一种接触就容易爱上的语言一
  7. 叫你两招编辑PDF文档的方法
  8. HDUOJ---1879 继续畅通工程
  9. oracle 24756,关于ORA-24756: transaction does not exist的问题
  10. JAVA无法加载此类文件,ORA-00376: 此时无法读取文件问题处理
  11. 上接扩展GridView控件(10) - 自定义分页样式
  12. 索引组织表:万物皆索引
  13. Github Atom汉化方式
  14. DateUtils 工具类
  15. 最新仿企业发卡源码,自动发卡平台
  16. 【Matlab】贝叶斯网络工具箱简介
  17. android 文件预览(读取)
  18. Android:单元测试
  19. 计算机网络安全-----Internet安全
  20. [附源码]Nodejs计算机毕业设计金牛社区疫情防控系统Express(程序+LW)

热门文章

  1. CSharp(C#)语言_第六章(表达式和运算符)
  2. CSharp 常用函数
  3. “深入理解计算机系统”小组学习的Task01-学习日志
  4. mybatis 中的![CDATA[ ]]
  5. 看涨期权计算函数实现(Python)
  6. HDOJ HDU 1129 Do the Untwist
  7. 有关lua,luci的介绍
  8. 计算机毕业设计android的云南旅游,美食攻略,产品预订app(源码+系统+mysql数据库+Lw文档)
  9. 关于对皮亚诺公理的理解
  10. oracle xe连接数,解决Oracle XE允许连接的用户数不足问题