CSS样式——CSS选择器
基本选择器标签选择器
- 使用HTML标签添加样式
标签名{ 样式名:样式值; }div{ width: 100px; height: 100px; }
- 给HTML标签添加一个id属性
- id属性的特点:每人id名在一个页面中只允许出现一次,这叫做id的唯一性
#id名{ 样式名:样式值; }#box{ width: 100px; height: 100px; }
- 给HTML标签添加一个class属性
- 一个class名在页面中可出现多个,每个标签可以有多个class名
#class名{ 样式名:样式值; }.box{ width: 100px; height: 100px; }
- 通配符是指所有标签都可以使用样式
*{ padding:0; margin:0; }
- 多个标签共用一个样式时,可将多个选择器同时设置相同样式,消除代码冗余
选择器1,选择器2,选择器3,选择器4{ 样式名:样式值; }div,#id,.class,*{ width: 100px; height: 100px; }
- 不能使用特殊字符
- 尽量使用小写字母开头
- 多个单词使用下划线(_)、连字符(-)、后面单词首字母大写方式命名
- 不能使用中文命名
- 语义化命名
- 下划线命名法:container_left
- 连字符命名法:container-left
- 驼峰式命名法:containerLeft
层级选择器后代选择器
- 选择父选择器下所有符合子选择器的子孙元素
父选择器 子选择器{ 样式名:样式值; }ul li{ width:100px; height:100px; }
- 选择父选择器下所有符合子选择器的子元素
父选择器 > 子选择器{ 样式名:样式值; }ul > li{ width:100px; height:100px; }
- 选择相同的父元素下符合条件的所有兄弟元素
选择器1 ~ 选择器2{ 样式名:样式值; }div ~ p{ width:100px; height:100px; }
- 选择相同的父元素下符合条件的第一个元素
选择器1 + 选择器2{ 样式名:样式值; }div + p{ width:100px; height:100px; }
伪类选择器
- 同一个标签,根据其不同的种状态,有不同的样式,需要使用伪类选择器进行设置
选择器:伪类选择器{ 样式名:样式值; }
- 鼠标点击之前的状态(只能设置给 a 元素)
选择器:link{ 样式名:样式值; }
- 鼠标点击时的状态(只能设置给 a 元素)
选择器:visited{ 样式名:样式值; }
- 鼠标划入标签状态
选择器:hover{ 样式名:样式值; }
- 鼠标按下的状态
选择器:active{ 样式名:样式值; }
- 在元素之前添加或删除内容
选择器::after{ 样式名:样式值; }
- 在元素之后添加或删除内容
选择器::before{ 样式名:样式值; }
- 匹配表单元素禁用
选择器::disabled{ 样式名:样式值; }
- 匹配表单元素禁用
选择器:disabled{ 样式名:样式值; }
- 匹配表单元素选中
选择器:checked{ 样式名:样式值; }
- 【CSS样式——CSS选择器】匹配获取焦点元素
选择器:fous{ 样式名:样式值; }
属性选择器
- 使用元素的属性和属性值进行选择元素
选择器[属性名]{
样式名:样式值;
}1
2
div[class]{
width: 100px;
height: 100px;
background: red;
margin: 10px;
}
只有第一个div满足条件,所以第一个div样式生效
通过属性名和属性值同时满足进行选择元素
选择器[属性名="属性值"]{
样式名:样式值;
}1
2
div[class="box1"]{
width: 100px;
height: 100px;
background: red;
margin: 10px;
}
只有第一个div满足条件,所以第一个div样式生效
通过属性名和属性值满足其中一项进行选择元素
选择器[属性名*="属性值"]{
样式名:样式值;
}1
2
div[class*="box1"]{
width: 100px;
height: 100px;
background: red;
margin: 10px;
}
两个div都满足其中一个条件,所有都生效
满足最前面的属性名和属性值进行选择元素
选择器[属性名^="属性值"]{
样式名:样式值;
}1
2
div[class^="box1"]{
width: 100px;
height: 100px;
background: red;
margin: 10px;
}
只有第二个div的第一个class="box1"满足条件,所以只对第二个div生效
满足最后面的属性名和属性值进行选择元素
选择器[属性名$="属性值"]{
样式名:样式值;
}1
2
div[class$="box1"]{
width: 100px;
height: 100px;
background: red;
margin: 10px;
}
只有第一个div的最后一个class="box1"满足条件,所以只对第一个div生效
属性组合匹配选择器:多个条件同时满足
结构伪类选择器(角标从0开始)类型选择器
选择器:nth-of-type(角标){
样式名:样式值;
}
孩子选择器
选择器:nth-of-child(角标){
样式名:样式值;
}
第一个选择器(角标从0开始)
选择器:first-of-type{
样式名:样式值;
}
最后一个选择器(角标从0开始)
选择器:last-of-type{
样式名:样式值;
}
唯一选择器(角标从0开始)
选择器:only-of-type{
样式名:样式值;
}
选择器权重关系
- !important > 行内样式(1000) > id选择器(100) > class选择器(10) > 标签选择器(1) > 通配符
- 群组选择器不改变选择器的权重
- 使用 !important 可以提升样式的权重
- 层级选择器使用相加法或者约分法进行表权重关系
样式继承
- 继承父级样式,文字相关样式可以继承,布局样式不能被继承(设置inherit后可继承)
推荐阅读
- 急于表达——往往欲速则不达
- 慢慢的美丽
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 2019-02-13——今天谈梦想()
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- Ⅴ爱阅读,亲子互动——打卡第178天
- 低头思故乡——只是因为睡不着
- 取名——兰
- 每日一话(49)——一位清华教授在朋友圈给大学生的9条建议
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。