属性选择器

元素的属性,我们都知道是什么。例如下面代码中type和value就是input元素的属性。属性选择器,顾名思义,就是通过属性来选择元素的一种方式。

属性选择器 说明

E[attr^="abc"] 选取了元素E,其中E元素定义了属性att,att属性值是以abc开头的任何字符串。

E[attr$="abc"] 选取了元素E,其中E元素定义了属性att,att属性值是以abc结尾的任何字符串。

E[attr*="abc"] 选取了元素E,其中E元素定义了属性att,att属性值任意位置是包含了abc的任何字符串。

结构伪类选择器

结构伪类选择器,是针对HTML层次“结构”的伪类选择器。例如我们想要某一个父元素下面的第n个子元素

结构伪类选择器.png

div p:first-child{

/*选择父元素的第一个子元素*/

background: red;

}

div p:last-child{

/*选择父元素的最后一个子元素*/

background: green;

}

div p:nth-child(5){

/*选择父元素下的第n个元素或奇偶元素,n的值为“数字 | odd | even”*/

background: yellow;

}

div p:nth-child(odd){

/*选择父元素下的第n个元素或奇偶元素,n的值为“数字 | odd | even”*/

background: black;

}

div p:only-child{

/*选择父元素中唯一的子元素(该父元素只有一个子元素)*/

background: pink;

}

结构伪类选择器(2)

:first-of-type 选择同元素类型的第1个同级兄弟元素

:last-of-type 选择同元素类型的最后1个同级兄弟元素

:nth-of-type(n) 匹配同元素类型的第n个同级兄弟元素,n的值为“数字 | odd | even”

:only-of-type 匹配父元素中特定类型的唯一子元素(该父元素可以有多个子元素)

以上解释,大家看着比较难懂,需要结合一下实例才能真正理解。

1):first-child

h1:first-child:选择的是h1元素,因为h1元素是div的第1个子元素。

p:first-child:选择不到任何元素,因为p并不是div的第1个子元素,而是div的第2个子元素。

span:first-child:选择不到任何元素,因为span并不是div的第1个子元素,而是div的第3个子元素;

2):first-of-type

h1:first-of-type:选择的是h1元素,因为h1元素是div中所有h1元素中的第1个h1元素,事实上也只有一个为h1的子元素;

p:first-of-type:选择的是p元素,因为p元素是div中所有p元素中的第1个p元素,事实上也只有一个为p的子元素;

span:irst-of-type:选择的是id="first"的span元素,因为在div元素中有2个span元素,我们选择的是两个之中的第1个

总结:

:first-child是选择父元素下的第1个子元素(不区分元素类型),而:first-of-type是选择父元素下某个元素类型的第1个子元素(区分元素类型)。

:last-child和:last-of-type、nth-child(n)和:nth-of-type(n)同样也可以这样去理解

:root选择器

在CSS3中,:root选择器用于选择文档的根元素。根元素指的是位于文档树中最顶层结构的元素。在HTML中,根元素永远是HTML

:root {

background-color: silver;

}

body {

background-color: red;

}

abcde

这里使用:root选择器指定整个网页的背景色为灰色,将网页中body元素的背景色设为红色。

:root{background-color:silver;}

上述代码等价于:

html{background-color:silver;}

:not()选择器

在CSS3中,:not()选择器中主要用于选取某个元素之外的所有元素。这是very very实用的一个选择器

ul li:not(.first) {

color: red;

}

  • 123
  • 123
  • 123
  • 123

:empty选择器

在CSS3中,:empty选择器用于选择一个不包含任何子元素或内容的元素。也就是选择一个内容为空白的元素。

CSS3 :empty选择器

table,

tr,

td {

border: 1px solid silver;

}

td {

width: 60px;

height: 60px;

line-height: 60px;

text-align: center;

background-color: #FFA722;

}

td:empty {

background-color: red;

}

2 4 8
16 32 64
128 256

在浏览器预览效果如下:

:emptyxuan'ze'qi

在网页表格中,对于内容为空的单元格往往设置不同的颜色,使得用户体验更好。网页版的HTML5游戏2048也用到了:empty选择器这个技术。

:target选择器

:target选择器用于选取页面中的某个target元素。那什么是target元素呢?target元素,说白了就是该元素的id被当做页面的超链接来使用。

当点击锚点链接时,相应的target元素下的h3标签字体颜色就会变为红色。

:target选择器一般都是结合锚点链接来使用,更好地给读者进行导航效果,这也是对用户体验非常好的一个做法。

html中结构伪类选择器,结构伪类选择器相关推荐

  1. web前端入门学习 css(8)(新增语义化标签、video/audio、新增input类型、新增表单属性、属性选择器、结构伪类选择器、伪元素选择器、css3盒子模型、模糊、calc函数、过渡

    https://www.bilibili.com/video/BV1pE411q7FU?p=276 文章目录 html5新特性 html5新增语义化标签 header头部 nav导航 article内 ...

  2. 属性选择器、结构伪类选择器、伪元素选择器

    选择器 一.属性选择器 1.E[att] 作用为:选择具有att属性的E元素. 2.E[att= "val"] 作用为:选择具有att属性,且属性值等于val的E元素:属性等于值. ...

  3. html伪类选择器结构,子元素伪类选择器 - CSS3 | 绿叶学习网

    子元素伪类选择器,指的就是选择某一个元素下的子元素.伪类选择器,相信小伙伴也接触过了,最典型的就是超链接的几个伪类:a:link.a:visited.a:hover.a:active. 在CSS3中, ...

  4. CSS3新增属性——新增选择器(属性选择器、结构伪类选择器、伪元素选择器)

    目录 1.属性选择器 2. 结构伪类选择器 nth-child(n) nth-of-type(n): nth-child和nth-of-type的区别 3.  伪元素选择器 1.属性选择器 E[att ...

  5. css中什么是伪类选择器?伪类选择器的简要介绍

    本章给大家带来css中什么是伪类选择器?伪类选择器的简要介绍.让大家可以了解在css中伪类选择器的作用,css伪类选择器有哪些分类等知识.有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. ...

  6. css中什么是伪类选择器?伪类选择器的简介

    一.伪类选择器介绍 伪类选择器(简称:伪类)通过冒号来定义,它定义了元素的状态,如点击按下,点击完成等,通过伪类可以为元素的状态修改样式. 伪类的功能和一般的DOM中的元素样式相似,但和一般的DOM中 ...

  7. 【结构伪类和否定伪类】

    结构伪类总结 用题目的形式,来了解常见伪类结构. 结构伪类 1.表示修改前4个元素的样式为字体大小为20px /* 前几个 */div > div:nth-child(-n + 4) {font ...

  8. 微信小程序界面设计小程序中的WXSS(css)选择器课程-伪类-:focus 伪类

    小程序中的WXSS(css)选择器课程-伪类-:focus 伪类 微信小程序交流群:111733917 | 微信小程序从0基础到就业的课程:https://edu.csdn.net/topic/hua ...

  9. 微信小程序界面设计小程序中的WXSS(css)选择器课程-伪类-:checked 伪类(不支持)

    小程序中的WXSS(css)选择器课程-伪类-:checked 伪类(不支持) 微信小程序交流群:111733917 | 微信小程序从0基础到就业的课程:https://edu.csdn.net/to ...

最新文章

  1. 产品经理也能动手实践的AI(一)- FastAI介绍
  2. Java学习之switch语句
  3. js中对函数设置默认参数值的3种方法
  4. java调用matlab 数组_JAVA调用matlab程序 输入输出数据转换
  5. c#语言中读取txt文件,简单的c#文本文件读写-.NET教程,C#语言
  6. python函数调用语句_Python函数定义和函数调用
  7. SAP UI5 walkthrough 3 - sapUiBody
  8. gitlab 构建tag_GitLab常用命令 分支 Tag 配置 操作
  9. 20.案例实战:为@Async实现一个自定义线程池
  10. ubuntu 16.04 安装ftp服务
  11. python win32api键盘_Python win32api.keybd_event模拟键盘输入
  12. FlashFXP设置文件传输速度
  13. 【日语学习】动词、形容词、名词的敬体形、简体形
  14. python api文档生成二维码_使用Python第三方库生成二维码
  15. Python批量处理Excel办公自动化
  16. kettle-新建资源库connect资源库灰色解决
  17. java将小写数字变成大写输出
  18. Win7 运行bat批处理文件时怎么隐藏cmd命令提示符窗口
  19. 合理使用DTO(Data Transfer Object)
  20. post模拟传数据的几种方法

热门文章

  1. 操作系统----磁盘调度(电梯调度算法)
  2. 【QS】bxslider没有效果解决方案
  3. RMAN BACKUP ... PLUS ARCHIVELOG ORA-19809
  4. 获得自定义的所有相簿
  5. 萌宠大作战服务器维护,萌宠大作战攻略 萌宠大作战部分常见疑问介绍
  6. uniapp 检查网络状态并封装
  7. Unity C# 读取安卓persistentDataPath目录中的json文件
  8. js基础-jsAPI-JQ部分总结
  9. WIN10+Ubuntu18.04双系统安装记录20191228
  10. Pandas载入数据(csv, JSON,XML,Excel,二进制数据,网页数据,数据库数据)