CSS复合选择器

总结

复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的,目的是为了可以选择更准确更精细的目标元素标签。

:first-child与:first-of-type区别

:first-child 匹配的是其父元素的第一个子元素,可以说是结构上的第一个子元素。

:first-of-type 匹配的是在其父元素的所有子元素中 该类型元素的第一个元素

<p>结构上的第一个p元素</p>  <!-- p:first-child -->   <!-- p:first-of-type -->
<h1>Welcome to My Homepage</h1> <!-- h1:first-of-type -->
<p>This paragraph is not the first child of its parent.</p>
<div> <!-- div:first-of-type --><p>父div的第一个p元素</p>  <!-- p:first-child --> <!-- p:first-of-type --><p>第二个</p>
</div>
<p><b>注意:</b> :first-child作用于 IE8以及更早版本的浏览器, DOCTYPE必须已经声明.
</p>
p:first-child      // 匹配的是其父元素的第一个子元素,可以说是结构上的第一个子元素
h1:first-child     // 匹配不到,h1的父元素的第一个子元素是p,不是h1
div:first-child    // 匹配不到,div的父元素的第一个子元素是p,不是divp:first-of-type    // 匹配其父元素的所有p元素中的第一个元素
h1:first-of-type   // 匹配其父元素的所有h1元素中的第一个元素
div:first-of-type  // 匹配其父元素的所有div元素中的第一个元素

伪类与伪元素的区别

语法 功能 同一个元素可用个数
伪类 : 选择DOM树上元素不同的状态(:visited :link)
DOM上无法用简单选择器选择的元素(:first-child)
可同时使用多个伪类
伪元素 :: 创建不在DOM树中的虚拟容器并添加样式 只能用一个伪元素,且只能出现在末尾

详解

交集选择器

交集选择器由两个选择器构成,其中第一个为标签选择器,第二个为class选择器,两个选择器之间不能有空格,如h3.special。

记忆技巧:

交集选择器 是 并且的意思。 即…又…的意思

比如:   p.one   选择的是: 类名为 .one  的 段落标签。

用的相对来说比较少,不太建议使用。

并集选择器

并集选择器(CSS选择器分组)是各个选择器通过逗号连接而成的,任何形式的选择器(包括标签选择器、class类选择器、id选择器等),都可以作为并集选择器的一部分。如果某些选择器定义的样式完全相同,或部分相同,就可以利用并集选择器为它们定义相同的CSS样式。

记忆技巧:

并集选择器 和 的意思, 只要逗号隔开的,所有选择器都会执行后面样式。

比如  .one, p , #test {color: #F00;}  表示   .one 和 p  和 #test 这三个选择器都会执行颜色为红色。  通常用于集体声明。

后代选择器

后代选择器又称为包含选择器,用来选择元素或元素组的后代,其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔。当标签发生嵌套时,内层标签就成为外层标签的后代。

子孙后代都可以这么选择。 或者说,它能选择任何包含在内的标签。

子元素选择器

子元素选择器只能选择作为某元素子元素的元素。其写法就是把父级标签写在前面,子级标签写在后面,中间跟一个 > 进行连接,注意,符号左右两侧各保留一个空格。

白话: 这里的子 指的是 亲儿子 不包含孙子 重孙子之类。

 比如:  .demo > h3 {color: red;}   说明  h3 一定是demo 亲儿子。  demo 元素包含着h3。

相邻兄弟选择器

可选择紧接在另一元素后的元素,且二者有相同父元素

选择紧接在 h1 元素后出现的段落,h1 和 p 元素拥有共同的父元素 :

h1 + p {margin-top:50px;}

伪类选择器

伪类选择器用于向某些选择器添加特殊的效果。比如可以选择 第1个,第n个元素。

.one 类选择器是一个点

伪类 :link 用 2个点 就是 冒号

链接伪类选择器

  • :link /* 未访问的链接 */

  • :visited /* 已访问的链接 */

  • :hover /* 鼠标移动到链接上 */

  • :active /* 选定的链接 */

    注意写的时候,他们的顺序尽量不要颠倒 按照 lvha 的顺序

结构(位置)伪类选择器(CSS3)

  • :first-child 选取属于其父元素的首个子元素的指定选择器
  • :last-child 选取属于其父元素的最后一个子元素的指定选择器
  • :nth-child(n) 匹配属于其父元素的第 N 个子元素,不论元素的类型
  • :nth-last-child(n) 选择器匹配属于其元素的第 N 个子元素的每个元素,不论元素的类型,从最后一个子元素开始计数。
    n 可以是数字、关键词或公式

目标伪类选择器(CSS3)

:target 可用于选取当前活动的目标元素

:target {color: red;font-size: 30px;
}

伪元素选择器(CSS3)

  • E::first-letter 文本的第一个单词或字

  • E::first-line 文本第一行

  • E::selection 可改变选中文本的样式

  • E::before 和 E::after

在E元素内部的开始位置和结束位置创建一个元素,该元素为行内元素,且必须要结合content属性使用。

div::befor {content:"开始";
}
div::after {content:"结束";
}

E:after、E:before 在旧版本里是伪元素,CSS3的规范里“:”用来表示伪类,“::”用来表示伪元素,但是在高版本浏览器下E:after、E:before会被自动识别为E::after、E::before,这样做的目的是用来做兼容处理

之所以被称为伪元素,是因为他们不是真正的页面元素,html没有对应的元素,但是其所有用法和表现行为与真正的页面元素一样,可以对其使用诸如页面元素一样的css样式,表面上看上去貌似是页面的某些元素来展现,实际上是css样式展现的行为,因此被称为伪元素。

注意

伪元素:before和:after添加的内容默认是inline元素;这两个伪元素的content属性,表示伪元素的内容,设置:before和:after时必须设置其content属性,否则伪元素就不起作用。

CSS复合选择器( 交集、 并集、后代、子元素、兄弟、伪类、伪元素)相关推荐

  1. CSS复合选择器---后代选择器、子选择器、并集选择器、伪类选择器

    CSS复合选择器 建立在基础选择器上,对基本选择器进行组合形成的 可以更准确.更高效的选择目标元素(标签) 包含:后代选择器.子选择器.并集选择器.伪类选择器 一.后代选择器 又称为包含选择器,可以选 ...

  2. css复合选择器(后代选择器、子代选择器、并集选择器、链接伪类选择器、:focus选择器)

    什么是复合选择器? 在css中,可以根据选择器的类型把选择器分为基础选择器和复合选择器,复合选择器是建立在基础选择器之上,对基本选择器进行组合形成的. 复合选择器可以更准确.更高效的选择目标元素(标签 ...

  3. CSS复合选择器,元素的显示模式,CSS背景设置

    CSS复合选择器,元素的显示模式,CSS背景设置 欢迎大家去博客冰山一树Sankey,浏览效果更好.直接右上角搜索该标题即可 博客园主页:博客园主页-冰山一树Sankey CSDN主页:CSDN主页- ...

  4. CSS复合选择器、元素显示模式、背景

    [CSS复合选择器.元素显示模式.背景] 一.CSS的复合选择器 1.1 什么是复合选择器 在 CSS 中,可以根据选择器的类型把选择器分为:基础选择器 和 复合选择器,复合选择器是建立在基础选择器之 ...

  5. day4 css复合选择器元素背景

    1. Emmet语法 前身是zen coding,使用缩写来提高编写速度. 1.1 快速生成html语法结构 1.2 快速生成css语法结构 1.3 快速格式化代码 2. css复合选择器 2.1 复 ...

  6. 前端之CSS篇(二)——CSS复合选择器及元素的显示模式和背景属性

    1.Emmet语法 Emmet语法是前身是Zen coding,它使用缩写,来提高html/css的编写速度,Vscode内部已经集成该语法. 1.1快速生成HTML结构语法 (1)生成标签 直接输入 ...

  7. 3.【CSS复合选择器、元素显示模式display、背景background所有】 简洁版小米侧边栏案例

    本学习笔记是个人对 Pink 老师课程的总结归纳,转载请注明出处! b站视频链接:https://www.bilibili.com/video/BV14J4114768. 笔记参考大佬:https:/ ...

  8. 前端与移动开发-----CSS(emmet 语法+CSS 复合选择器+元素的显示模式)

    css emmet 语法 -- 开发效率 emmet 的特点和作用:通过简写提高编码效率. emmet 生成 HTML 结构语法: emmet 语法快速生成 css 样式: 1,常用属性大多用英文单词 ...

  9. 【前端基础之css2(emmet语法、CSS复合选择器、元素的显示模式、Snipaste截图工具、小米侧边栏制作、CSS背景、CSS三大特性、盒子模型、PS基本操作】

    emmet语法 快速生成HTML标签: 快速生成CSS样式语法: 方法1(没有找到对应的文件,所以用了方法2): 方法2: 左下角选择设置 搜索框输入"格式化",勾选上如图三个选项 ...

最新文章

  1. 微生物入侵:过程、模式与机制
  2. 云的普及难易,云计算普及的难易
  3. STM32 电机教程 22 - 基于ST MCLIB无感FOC算法变有感(HALL)FOC算法
  4. Git用户名邮箱配置
  5. matlab max与min获取矩阵最大最小值函数
  6. linux然后防止ip欺骗,linux – 如何在iptables中防止ip欺骗?
  7. springboot maven打包pom配置
  8. Cisdem DVD Burner for Mac(DVD光盘刻录软件)
  9. 从jvm层面来看多线程问题
  10. navicat中如何查看mysql日志_如何查看 Navicat Premium 日志文件
  11. UNIX文件系统结构
  12. 在centos上安装pycharm
  13. iOS展示超大图片或超高分辨率图片崩溃解决方法
  14. 西雅图大学计算机专业,本科计算机专业伊力诺依香槟分校,华盛顿西雅图大学,德州奥斯汀哪个好??...
  15. mysql rollback.pl_binlog-rollback.pl 在线恢复update 和delete不加条件误操作sql
  16. 某悦的WinRT学习记录1
  17. selenium中键盘操作
  18. PHP调用QQ互联接口实现QQ登录网站
  19. video.js 视频截图、录制、自定义全屏,hls、flv、mp4视频播放
  20. 做网站如何选择利于优化的服务器

热门文章

  1. 一封来自前ThoughtWorks总监咨询师、致国内程序员的一封信
  2. Android内存优化总结
  3. HTML多图片压缩上传
  4. STM32系列——手把手教你将SYN6288语音播报模块的标准库程序转为hal库使用
  5. RT系统+STM32+SYN8266播报+红外定时器
  6. 关于jxl的一点知识
  7. 8月第2周业务风控关注 | 新氧加强内容审核并上线人脸识别技术
  8. 新氧季报图解:营收3.25亿同比降28% 净利3130万
  9. 8051单片机(STC89C52)倒计时器
  10. mysql slow设置_mysql slow log设置