浅谈CSS选择器,及CSS选择器优先级

您所在的位置:网站首页 css4种选择器 浅谈CSS选择器,及CSS选择器优先级

浅谈CSS选择器,及CSS选择器优先级

#浅谈CSS选择器,及CSS选择器优先级| 来源: 网络整理| 查看: 265

在看CSS选择器优先级顺序前,我们先来简单说说CSS基本选择器有哪些? 通用选择器(如:*,即选择所有元素) 标签选择器(如:body,div,p,ul,li) id选择器(如:id="name",id="name_txt") 类选择器(如:id="name",id="name_txt") 后代选择器(如:#head .nav ul li 从父集到子孙集的选择器) 子元素选择器(如:div>p ,带大于号>) 伪类选择器(如:就是链接样式,a元素的伪类,4种不同的状态:link、visited、active、hover。) 伪元素选择器

标签、id、类选择器通常很好理解。标签选择器的写法就是直接写一个标签如body{};id选择器的写法是#id名称{},类选择器的写法是.class名称{}。

下面我们来说说稍微复杂一点的选择器 后代选择器

后代选择器也称为包含选择器,用来选择特定元素或元素组的后代,将对父元素的选择放在前面,对子元素的选择放在后面,中间加一个空格分开。后代选择器中的元素不仅仅只能有两个,对于多层子线后代关系,可以有多个空格加以分开。

如下例子定义了所有class属性为father的元素下面的class属性为child的颜色为红色。

子元素选择器

请注意这个选择器与后代选择器的区别,子选择器只是选择元素的直接后代,即仅仅作用于第一个后代。后代选择器通过空格来进行选择,而子选择器是通过“>”进行选择。

伪类选择器

即链接样式。a元素的伪类,存在4中不同的状态:link、visited、active、hover。如

伪元素选择器

就像伪类一样, 伪元素添加到选择器,但不是描述特殊状态,它们允许您为元素的某些部分设置样式。 下例中的 ::first-line伪元素改变段落第一行的文字样式。

/* The first line of every

element. */ p::first-line { color: blue; text-transform: uppercase; }

注意:与伪元素比较,pseudo-classes 能够用来改变基于状态的元素样式。

组合选择器

紧邻兄弟选择器 '+' 操作符选择相邻元素,即第二个节点紧邻着第一个节点,并且拥有共同的父节点。 语法: A + B 例子: ul + li 会匹配任何 元素 后紧邻的 元素。

一般兄弟选择器 '~' 操作符选择兄弟元素,也就是说,第二个节点在第一个节点后面的任意位置,并且这俩节点的父节点相同。 语法: A ~ B 例子: p ~ span 将会匹配同一父元素下,

元素后的所有 元素。

子选择器 '>’ 语法: A > B 例子: ul > li 将会匹配直接嵌套在 元素 ( 或 HTML 无序列表元素) 代表多项的无序列表,即无数值排序项的集合,且它们在列表中的顺序是没有意义的。通常情况下,无序列表项的头部可以是几种形式,如一个点,一个圆形或方形。头部的风格并不是在页面的HTML描述定义, 但在其相关的CSS 可以用 list-style-type 属性。") 元素内的所有 元素 (或者 HTML 列表条目元素) 用于表示列表里的条目。它必须被包含在一个父元素里:一个有顺序的列表(),一个无顺序的列表(),或者一个菜单 ()。在菜单或者无顺序的列表里,列表条目通常用点排列显示。在有顺序的列表里,列表条目通常是在左边有按升序排列计数的显示,例如数字或者字母。") 元素。

后代选择器 ' ' (空格) 操作符将选择第一个元素的子代节点。 语法: A B 例子: div span 将匹配 元素 内所有的 元素。

说完了CSS选择器,那么就要说一说选择器它们的优先级了

当两个规则都作用到了同一个html元素上时,如果定义的属性有冲突,那么应该用谁的值的,CSS有一套优先级的定义。

不同级别 在属性后面使用 !important 会覆盖页面内任何位置定义的元素样式。 作为style属性写在元素内的样式 id选择器 类选择器 标签选择器 通配符选择器 浏览器自定义或继承

总结排序:!important > 行内样式>ID选择器 > 类选择器 > 标签 > 通配符 > 继承 > 浏览器默认属性

同一级别

同一级别中后写的会覆盖先写的样式

上面的级别还是很容易看懂的,但是有时候有些规则是多个级别的组合

CSS优先级:是由四个级别和各级别的出现次数决定的。 四个级别分别为:行内选择符、ID选择符、类别选择符、元素选择符。

优先级的算法:

每个规则对应一个初始"四位数":0、0、0、0 若是 行内选择符,则加1、0、0、0 若是 ID选择符,则加0、1、0、0 若是 类选择符/伪类选择符,则分别加0、0、1、0 若是 元素选择符,则分别加0、0、0、1

算法:将每条规则中,选择符对应的数相加后得到的”四位数“,从左到右进行比较,大的优先级越高。

需注意的: !important的优先级是最高的,但出现冲突时则需比较”四位数“; 优先级相同时,则采用就近原则,选择最后出现的样式; 继承得来的属性,其优先级最低;

!important > 行内样式>ID选择器 > 类选择器 > 标签 > 通配符 > 继承 > 浏览器默认属性 *css选择器使用强烈建议采用低权重原则,利于充分发挥css的继承性,复用性,模块化、组件化。

参考: CSS选择器优先级总结 为什么CSS选择器是从右往左解析



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3