CSS:选择器与优先级

样式优先级原则

总的原则
1.CSS规定拥有更高确定度的选择器优先级更高
2.如果样式中包含冲突的规则,且它们具有相同的确定度。那么,后出现的规则优先级高。

优先级:由高到低(从上到下)

  • !important

  • 内联(1,0,0,0)

  • id: (0,1,0,0)

  • 类:(0,0,1,0)

  • 伪类/属性

  • 元素:(0,0,0,1)

  • 通配符

类选择器

class=”web”,多个元素可以拥有同一个类名

id选择器

id=”web”,具有唯一性

伪类选择器

CSS伪类(pseudo-class)是加在选择器后面的用来指定元素状态的关键字。

链接相关

a:link 未访问的链接
a:visited 已访问的链接
a:hover 鼠标移动到链接上
a:active 选定的链接
:target 可用于选取当前活动的目标元素,href=”#222″(内容跳转)

表单元素相关

:focus 伪类在元素获得焦点时向元素添加特殊的样式
:disabled 匹配每个被禁用的元素(大多用在表单元素上)。
:enabled 表示任何启用的(enabled)元素
:checked 匹配每个已被选中的 input 元素(只用于单选按钮和复选框)(只有opera支持)

父子相关

:empty 代表没有子元素的元素,只计算元素结点及文本(包括空格),注释、运行指令不考虑在内。

:first-child 代表了某个元素,这个元素是它元素的的第一个子元素
:first-of-type
:last-of-type

:nth-clild(n) 选择器匹配属于其元素的第 N 个子元素,不论元素的类型
n 可以是数字、关键词或公式(2,an + b,odd)(n 是计数器(从 0 开始),b 是偏移值)
:nth-last-child(n)倒数
:nth-of-type(n)

属性选择器

E[attr]
E[attr=value]
E[attr~=value] 选择器用于选取属性值中包含指定词汇的元素

E[attr^=value] 选择器匹配属性值以指定值开头的每个元素。
E[attr*=value]
E[attr$=value]

基于关系的选择器

父子关系

A E 任何是元素A的后代元素E (后代节点指A的子节点,子节点的子节点,以此类推)
A > E 任何元素A的子元素(直接)

兄弟关系

B + E 任何元素B的下一个兄弟元素E(直接)
B ~ E B元素后面的拥有共同父元素的兄弟元素E

.class1.class2 同时包含class1和class2属性的元素
F#id 具有某id的F元素

E,F 所有E或F元素

伪元素

E:first-line 向文本的首行添加特殊样式。
E:first-letter 向文本的第一个字母添加特殊样式。
E:before 在元素之前添加内容。
E:after 在元素之后添加内容。

    原文作者:Murphywuwu
    原文地址: https://segmentfault.com/a/1190000003723406
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞