Skip to content

css 知识点 #11

@msforest

Description

@msforest

css3 flex实例

css 选择器

getComputedStyle


选择器

  1. 分组
    对不同的标签使用同一个规则
div, span, a, input{
    font-size: 24px;
}
  1. 类选择器/ID选择器

列出一些特别的表达式

.class1.class2{     // 仅表示选择同时包含这些类名的元素(类名的顺序不限)
    color: red;
}

.class1 .class2{    // 同等于后代选择器
    color: red;
}

.class1, class2{    // 同1:分组
    color: red;
}
  1. 属性选择器
img[src]{
    content: attr(alt);
}

img[src="1.png"]{
    content: attr(alt);
}

img[src~="1.png"]{  // src值包含1.png
    content: attr(alt);
}

img[src^="1.png"]{  // 以1.png开头
    content: attr(alt);
}

img[src$="1.png"]{  // 以1.png结尾
    content: attr(alt);
}

img[src*="1.png"]{  // 包含1.png
    content: attr(alt);
}
  1. 后代选择器
div span{       // div元素下的所有span,不管span元素属于第几代
    color: red;
}

div > span{     // div元素的子span元素
    color: red;
}

h1 + p{         // 选择相邻兄弟元素
    color: red;
}

选择器的特殊性

选择器的特殊性分为四个等级:a,b,c,d.

  • 若样式为行内样式,则a=1;
  • b等于ID选择器的总数;
  • c等于类、伪类和属性选择器的数量;
  • d等于类型选择器和伪元素选择器的数量。

使用这些规则可以计算出任何css选择器的特殊性:

选择器 特殊性 以10为基数的特殊性
style='' 1,0,0,0 1000
#id #id1 0,2,0,0 200
#id .class 0,1,1,0 110
div#id 0,1,0,1 101
#id 0,1,0,0 100
p.class .class1 0,0,2,1 21
p.class 0,0,1,1 11
div p 0,0,0,2 2
p 0,0,0,1 1

基本上,用style属性编写的规则总是比其他任何规则特殊,具有ID选择器的规则总是比没有ID选择器的规则特殊,具有类选择器的规则比只有类型选择器的规则特殊。最后,如果两个规则的特殊性相同,那么后定义的规则优先。
综合所有规则:important>行内样式>id>class>标签>通用样式

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions