该部分主要为CSS3新增的选择器

接上一篇 CSS(CSS3)选择器(1)

一.通用兄弟选择器:

24:E ~ F,匹配任何E元素之后的同级F元素。

div ~ p{
background-color:#00FF00;
}

二.属性选择器:

25:E[att ^= val],匹配属性att的值以”val“开头的元素。

[id ^= start]{
background-color:red; ]
/*匹配以id属性的值为start开头的,如id="start1",id="start2",id="start3"的元素*/

26:E[att $= val],匹配属性att的值以”val“结尾的元素。

[id $= end]{
background-color:red; ]
/*匹配以id属性的值为end结尾的,如id="1end",id="2end",id="3end"的元素*/

27:E[att *= val],匹配属性att的值包含”val“字符串的元素。

[id $= hass]{
background-color:red; ]
/*匹配以id属性的值包含hass的,如id="1hass",id="hass2",id="3hass444"的元素*/

三.结构性伪类选择器:

28:E:root,匹配文档的根元素,对于HTML文档,就是HTML元素。(也就是说可能存在其他文档形式时使用,选中的是该文档类型的根元素)

:root{
background:red;
}
/*经测试,像div:root这样的写法是无效的*/

29:E:not,匹配不符合当前选择器的任何元素。

h1:not(.name) {
color: red;
}
/*其含义是,匹配所有h1元素的类名不为name的h1元素,如果:not选择器前面不带指明的元素是无效的*/

30:E:empty,匹配一个不包含任何子元素的元素,包括文本节点

.box:empty{
background:pink;
}

31:E:target,匹配文档中特定”id“,点击后的效果。

:target{
background: red;
}
/*通常用于锚点定位后,定位的目标点样式*/

32:E:last-child,匹配父元素的最后一个子元素。

li:last-child{
background-color:red;
}

33:E:nth-child(n),匹配其父元素的第n个子元素,从1开始。

li:nth-child(){
background-color:red;
}
li:nth-child(odd){
background-color:red;
}

34:E:nth-last-child(n),匹配其父元素的倒数第n个子元素,倒数第一个的index为1。

li:nth-last-child(){
background-color:red;
}
li:nth-last-child(even){
background-color:red;
}

35:E:nth-of-type(n),与:nth-child()作用类似,但是仅匹配同类型的元素。

h2:nth-of-type(odd){
background:red;
}

36:E:nth-last-of-type(n),与:nth-last-child() 作用类似,但是仅匹配同类型的元素。

h2:nth-last-of-type(even){
background:red;
}

37:E:first-of-type,匹配父元素下使用同种标签的第一个子元素。

h2:first-of-type{
background-color: yellow;
}

38:E:last-of-type,匹配父元素下使用同种标签的最后一个子元素。

h2:last-of-type{
background-color: yellow;
}

39:E:only-child,匹配父元素下仅有的一个子元素,等同于:first-child:last-child或 :nth-child(1):nth-last-child(1)。

li:only-child{
background-color: yellow;
}

40:E:only-of-type,匹配父元素下使用同种标签的唯一一个子元素,等同于:first-of-type:last-of-type或 :nth-of-type(1):nth-last-of-type(1)。

li:only-of-type{
background-color: yellow;
}

四.UI元素状态伪类选择器:

41:E:enabled,匹配表单中激活的元素。

input[type="text"]:enabled{
background-color:yellow;
}

42:E:disabled,匹配表单中禁用的元素。

input[type="text"]:disabled{
background-color:purple;
}

43:E:read-only,指定当元素处于只读状态时的样式。

input[type="text"]:read-only{
background-color: gray;
}

44:E:read-write,指定当元素处于非只读状态时的样式。

input[type="text"]:read-write{
background-color: greenyellow;
}

45:E:checked,匹配表单中被选中的radio(单选框)或checkbox(复选框)元素。

input[type="checkbox"]:checked {
outline:2px solid blue;
}

46:E:default,指定但页面打开时默认处于选取状态的单选框或复选框控件的样式。需要注意的是,即使用户将该单选框或复选框的选取状态设定为非选取状态,该样式仍然有效。

input[type="checkbox"]:default {
outline:2px solid blue;
}

47:E:indeterminate,指定当页面打开时,一组单选框中没有任何一个单选框被设定为选取状态时,整组单选框的样式,如果用户选取了任何一个单选框,那么该样式则取消。

input[type="radio"]:indeterminate{
outline: solid 3px blue;
}

48:E::selection,用来指定该元素处于选中状态时的样式。

p::selection{
background:red;
color:#FFF;
}
input[type="text"]::selection{
background:gray;
color:#FFF;
}

49:E:invalid,用来指定元素的内容无法通过H5元素的属性所指定的检查(required)或元素的内容不符合规定的格式(type=Email等)。

input[type="text"]:invalid{
background-color: red;
}

50:E:valid,用来指定元素的内容可以通过H5元素的属性所指定的检查(required)或元素的内容不符合规定的格式(type=Email等)。

input[type="text"]:valid{
background-color: white;
}

51:E:required,用来指定允许使用required属性,并且已经指定了required属性的input,select,textarea元素的样式。

input[type="text"]:required{
border-color: red;
border-width:3px;
}

52:E:optional,用来指定允许使用required属性,并且未指定了required属性的input,select,textarea元素的样式。

input[type="text"]:optional{
border-color: black;
border-width:3px;
}

53:E:in-range,用来指定当元素的有效值被限定在一定范围之内(通常通过min属性值或者max属性值来限定),且实际输入值在该范围内时使用的样式。

input[type="number"]:in-range{
background-color: white;
}

54:E:out-of-range,用来指定当元素的有效值被限定在一定范围之内(通常通过min属性值或者max属性值来限定),且实际输入值不在该范围内时使用的样式。

input[type="number"]:out-of-range{
background-color: red;
}

55:E::placeholder,用来改变文字占位符的样式。

input::placeholder{
color:red;
}

至此,CSS(CSS3)选择器的简单说明笔记就到这里结束了,其实这些内容包含了CSS(CSS3)世界的绝大多数常用选择器,当然,还有些不常用的如果大家有兴趣,可以自行搜索资料。

参考:css选择器笔记30个你必须熟记的css选择器MDN-docs-选择器介绍,HTML5和CSS3权威指南(第3版下册-庐陵牛)第十九章,before和after伪元素的用法

CSS3选择器02—CSS3部分选择器的更多相关文章

  1. CSS3中的伪类选择器详解

      类选择器和伪类选择器区别 类选择器我们可以随意起名,而伪类选择器是CSS中已经定义好的选择器,不可以随意起名. 伪类选择器以及伪元素 我们把它放到这里 p.aaas{ text-align: le ...

  2. CSS选择器,CSS3选择器

    CSS选择器 ------->CSS选择器优先级 1>通配符选择器(CSS2) 选择所有元素,所有浏览器都支持. *{ margin:0; padding:o; } 2>元素选择器( ...

  3. CSS3每日一练之选择器-结构性伪类选择器

    <!DOCTYPE HTML> <html> <head> <meta charset="gb2312"> <title> ...

  4. [CSS3] 学习笔记-CSS3选择器详解(一)

    1.属性选择器 在CSS3中,追加了3个属性选择器,分别为:[att*=val].[att^=val]和[att$=val],使得属性选择器有了通配符的概念. <!doctype html> ...

  5. css3常用方法以及css3选择器

    最重要的 CSS3 模块包括: 选择器 框模型 背景和边框 文本效果 2D/3D 转换 动画 多列布局 用户界面   CSS3 边框   CSS3 边框 通过 CSS3,您能够创建圆角边框,向矩形添加 ...

  6. css3类选择器之结合元素选择器和多类选择器

    css3类选择器之结合元素选择器和多类选择器用法: <!DOCTYPE html> <html lang="en"> <head> <me ...

  7. css3中的伪类选择器

    一.动态伪类 动态伪类,因为这些伪类并不存在于HTML中,而只有当用户和网站交互的时候才能体现出来,动态伪类包含两种,第一种是我们在链接中常看到的锚点伪类,如":link",&qu ...

  8. Selectivizr-让IE6~8支持CSS3伪类和属性选择器

    一.下载和demo 下载: 您可以狠狠地点击这里:selectivizr-1.0.0.zip(右键-[目标|链接另存为] 9.24K) demo: 您可以狠狠地点击这里:Selectivizr部分属性 ...

  9. CSS3之伪元素选择器和伪类选择器

    伪类选择器,和一般的DOM中的元素样式不一样,它并不改变任何DOM内容.只是插入了一些修饰类的元素,这些元素对于用户来说是可见的,但是对于DOM来说不可见.伪类的效果可以通过添加一个实际的类来达到. ...

随机推荐

  1. 洛谷P1140 相似基因 (DP)

    洛谷P1140 相似基因 题目背景 大家都知道,基因可以看作一个碱基对序列.它包含了44种核苷酸,简记作A,C,G,TA,C,G,T.生物学家正致力于寻找人类基因的功能,以利用于诊断疾病和发明药物. ...

  2. python的面向对象-面向对象设计

    1.面向对象设计 def school(name,addr,type):#定义一个大函数的作用就是不能让狗调用学校的方法 #学校动作 def kaoshi(school): print("[ ...

  3. OpenStack 网络服务 Neutron 多网卡(提供者网络)(十八)

    OpenStack 网络服务 Neutron 多网卡,分为内部网络.外部网络 使用vmware模拟两张网卡 添加网卡 网卡配置 cd /etc/sysconfig/network-scripts cp ...

  4. Scala进阶之路-I/O流操作之文件处理

    Scala进阶之路-I/O流操作之文件处理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 说起Scala语言操作文件对象其实是很简单的,大部分代码和Java相同. 一.使用Scal ...

  5. Nginx配置项优化(转载)

    (1)nginx运行工作进程个数,一般设置cpu的核心或者核心数x2 如果不了解cpu的核数,可以top命令之后按1看出来,也可以查看/proc/cpuinfo文件 grep ^processor / ...

  6. CSS media--(来自网易)

    概述 通过媒体查询为不同的设备和大小配置不同的样式.代码展示 /* media */ /* 横屏 */ @media screen and (orientation:landscape){ } /* ...

  7. 让你的HTML5&CSS3网站在老IE中也能正常显示的3种方法

    起初,IE其实也是一款非常有进取心的浏览器.但经过一段时间的蛰伏后,它已经成为了我们生活中的一道障碍.微软现在又重新开始向其它浏览器发起挑战,但事实情况是,新版的现代IE浏览器一直滞后于谷歌浏览器和火 ...

  8. 格式化 SQL 来提高效率

    本文由 伯乐在线 - cucr 翻译,黄利民 校稿.未经许可,禁止转载!英文出处:msiman.ga.欢迎加入翻译小组. 背景 已格式化的SQL并不比未格式化SQL运行地更快.数据库可能真的不太在意你 ...

  9. Windows bat 学习(初级)

    http://steve-jansen.github.io/guides/windows-batch-scripting/part-1-getting-started.html 注释:REM 或 :: ...

  10. 分布式文件系统 之 数据块(Block)

    众所周知,HDFS中以数据块(block)为单位进行存储管理.本文简单介绍一下HDFS中数据块(block)的概念,以及众多分布式存储系统(不止是HDFS)使用block作为存储管理基本单位的意义. ...