CSS3新增选择器有哪些?

2020-05-15 11:23发布

3条回答

CSS3是CSS的最新版本,在CSS3中增加了许多新的选择器。运用这些选择器可以简网页代码的书写,让稳当的结构更加简单。CSS3新增的选择器主要分为属性选择器、关系选择器、结构化伪类选择器、伪元素选择器4类,具体介绍如下。

1、 属性选择器

属性选择器可以根据网页标记的属性及属性值来选择标记。属性选择器一般是一个记后紧跟中括号“[]”,中括号内部是属性或者属性表达式。


CSS3中常见的属性选择器主要包括E[att^=value]、E[att$=value]和E[att*=value]这三种性选择器,具体如下所示:

(1)E[att^=value]

例如: div[id^=section]

说明:表示匹配包含id属性,且id属性值是以“section”字符串开头的div标记。

(2)E[att$=value]

例如: div[id$=section]

说明:表示匹配包含id属性,且id属性值是以“section”字符串结尾的div标记

(3)E[att*=value]

例如: div[id*=section]

说明:表示匹配包含id属性,且id属性值包含“section”字符串开头的div标记。

2、关系选择器

CSS3中的关系选择器主要包括子代选择器和兄弟选择器,其中子代选择器由符号连接,兄弟选择器由符号“+”和“~”连接,具体如下所示。

(1)关系选择器

例如: h1>strong

说明:表示选择嵌套在h1标记的子标记strong。

(2)临近兄弟选择器

例如: h2+p

说明:表示选择h2标记后紧邻的第一个兄弟标记p。

(3)普通兄弟选择器

例如:p~h2

说明:表示选择p标记所有的h2兄弟标记。

3、结构化伪类选择器

结构化伪类选择器可以减少文档内class属性和id属性的定义,使文档变得更加简洁。下面列举了常用的结构化伪类选择器。

:root

用于匹配文档根标记,使用“:root选择器”定义的样式,对所有页面标记都生效。

:not

例如:body*:not(h2)

用于排除body结构中的子结构标记h2。

:only-child

例如:li:only-child

用于匹配属于某父标记的唯一子标记(li),也就是说某个父标记仅有一个子标记(li)。

:first=child

用于选择父元素第一个子标记。

:last-child

用于选择父元素最后一个子标记。

:nth-child(n)

例如:p:nth-child(2)

表示用于选择父元素第二个p标记。

:nth-last-child(n)

例如:p:nth-last-child(2)

用于表示父元素倒数第二个p标记。

:nth-of-type(n)

例如:h2:nth-of-type(odd)

表示用于选择所有h2标记中位于奇数行数的标记。

:nth-last-of-type(2)

例如:p:nth-last-of-type(2)

表示用于选择倒数第二个p标记。

:empty

用于选择没有子标记或者文本内容为空的所有标记。

4、伪元素选择器

伪元素选择器一般是一个标记后面紧跟英文冒号“:”,英文冒号后是伪元素名。


需要注意的是,标记与伪元素名之间不要有空格,伪元素选择器常见有:before选择器和:after选择器。

:before

例如: p:before

表示:表示在p标记的内容前面插入内容。

:after

例如: p:after

表示: 表示在p标记的内容后面插入内容。

需要注意的是,如果想要在文本后面添加是图片,只需更改content属性后的内容即可。其基本语法格式如下


chai - 嘿咻嘿咻~
3楼 · 2020-05-15 11:47

新增属性选择器:

  1. E[foo^='bar'] 匹配E元素,该元素包含foo属性,且foo属性值以bar开头

  2. E[foo$='bar'] 匹配E元素,该元素包含foo属性,且foo属性值以bar结尾

  3. E[foo*='bar'] 匹配E元素,该元素包含foo属性,且foo属性值包含bar字符串

新增结构伪类选择器:

  1. E:root 匹配文档所在的根元素

  2. E:nth-child(n) 匹配E所在父元素第n个匹配E的元素,非E的子元素也参与排序,若第n个子元素不是E元素,则该语句没有效果(注意这里的n从1开始)

  3. E:nth-last-child(n) 匹配E所在父元素倒数第n个匹配E的元素

  4. E:nth-of-type(n) 匹配E所在父元素第n个匹配E的元素,非E的子元素不参与排序(n同样是从1开始)注意区别nth-child(n)

  5. E:last-child

  6. E:first-of-type

  7. E:last-of-type

  8. E:only-child

  9. E:only-of-type

  10. E:empty

新增UI状态伪类选择器(IE6/7/8不支持)

序号  选择器                        含义                                                实例

1 E:enabled 匹配表单中激活的元素  

2 E:disabled 匹配表单中禁用的元素 input[type="text"]:disabled { background:#ddd; }

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

4 E::selection 匹配用户当前选中的元素  


web-马赏
4楼 · 2020-05-15 15:16

用的比较多的 类明选择器.class名 和id 选择器 #id名  后代选择器 

相关问题推荐

  • 回答 17
    已采纳

    CSS为HTML标记语言提供了一种样式描述,定义了其中元素的显示方式。CSS在Web设计领域是一个突破。利用它可以实现修改一个小的样式更新与之相关的所有页面元素。总体来说,CSS具有以下特点:丰富的样式定义CSS提供了丰富的文档样式外观,以及设置文本和背景属性...

  • 回答 19

    递归做为一种算法在程序设计语言中广泛应用.是指函数/过程/子程序在运行过程中直接或间接调用自身而产生的重入现象

  • 回答 16
    已采纳

    CSS盒子模型就是在网页设计中经常用到的CSS技术所使用的一种思维模型。 盒子模型(Box Modle)可以用来对元素进行布局,包括内边距,边框,外边距,和实际内容这几个部分。盒子模型分为两种:第一种是W3c标准的盒子模型(标准盒模型)第二种IE标准的盒子模型(怪...

  • 回答 15

    浮动和定位都可以使元素脱离标准文档流,提升层级,  浮动脱离文档流,提高半个层级,不能完全覆盖下面元素(不能覆盖图片文字)定位脱离标准文档流,提升一个层级,可以完全覆盖下面元素及其内容...

  • 回答 13
    已采纳

    内联样式,如: style= ,权值为1000。ID选择器,如:#content,权值为0100。类,伪类和属性选择器,如.content,权值为0010。类型选择器和伪元素选择器,如div p,权值为0001。通配符、子选择器、相邻选择器等的。如*、>、+,权值为0000。继承的样式没有权值。...

  • 回答 9

    css过渡与动画主要区别在于:transition需要触发一个事件才会随着时间改变其CSS属性;animation在不需要触发任何事件的情况下,也可以显式的随时间变化来改变元素CSS属性,达到一种动画的效果。css过渡与动画区别总结:1、动画不需要事件触发,过渡需要。2、...

  • 回答 3

    一段文字在标签的宽度内是不会自动换行的,可以给标签设置小一点的宽度,碰到标签的右边缘就会自动换行了

  • 回答 17

    定位:1、相对定位 position:relative; 兼容2、绝对定位 absolut 兼容3、固zhuan定定位 fixed ie6不兼容

  • 回答 4

    如果一个元素覆盖在另外一个元素之上,而你想显示下面的元素,这时你就需要把上面这个元素的background设置为transparent transparent在 不同 css版

  • 回答 4

    怎样在CSS样式中设置背景的透明度,下面一个具体的实例。把类为box的层设为透明。.box{width:300px;height:200px;margin:0auto;boxder:1pxsolid#ccc;background:#000;filter:alpha(opacity:30);opacity:0.3;-moz-opacity:0.3;-khtml-o...

  • 回答 6

    解决方案You can check if the image's color model includes an alpha channel:BufferedImage img = ImageIO.read(/* from somewhere */);if (img.getColorModel().hasAlpha()) {undefined// img has alpha channel...

  • 回答 5

    找到 eclipse 的安装目录 进入到 plugins 文件夹下,这个文件是管理 eclipse样式相关的文件夹然后我们进入它的子目录 org.eclipse.ui.themes_1.2.1.v20170809-1435 文件夹,去里面找 与 eclipse 相关的样式设置,继续寻找来到 这个界面。 考到css 文件夹,与...

  • 回答 6

    css问题filter: alpha(opacity=100,finishopacity=0,style=2)alpha是来设置透明度的,它的基本属性是filter:alpha(opacity,finishopacity,style,startX,startY,finishX,finishY).opacity代表透明度数,选值0-100,0是完全透明,100是不透明.finishopacit...

  • 回答 4

    设置背景颜色:要设置背景颜色,直接使用background:颜色值;即可。如:body{background:#000}将body的背景颜色设置为黑色。 设置背景图片:1.规律背景图片。不如我们要设置一个渐变的背景图片,这种背景只需要切出1像素宽,高度合适的图片作为背景即可。body...

  • 回答 2

    原因分析: 使用css的opcity属性改变某个元素的透明度,但是其元素下的子元素的透明度也会被改变,即便重定义也没有用,不过有个方法可以实现,大家可以看看。 可以使用一张透明的图片做背景可以达成效果...

  • 回答 3

    用css 隐藏掉overflow在用div 模拟重画滚动条,用div和z-index配合模拟滚动条

没有解决我的问题,去提问