一、什么是选择器
CSS选择器是CSS规则的第一部分
CSS选择器用于选择你想要的的元素的样式的模式
选择器所选择的元素,叫做“选择器的对象”
二、选择器种类
- ID选择器(#idName),选择id为 idName 的元素
- 类选择器(.className),选择类名为 className 的元素
- 标签选择器(div),选择标签为 div 的元素
- 后代选择器(#idName div),选择id为 idName 元素内部所有的 div 元素,包含所以后代,不区分直接或是非直接子集
- 子选择器(#idName>div) ,选择id为 idName 元素内部所有的直接子集 div 元素
- 相邻同胞选择器(.className+.className1),选择紧接在.className之后的所有.className1元素
- 群组选择器(div,p),选择div、p的所有元素
- 伪类选择器:
- :link :选择未被访问的链接
- :visited:选取已被访问的链接
- :active:选择活动链接
- :hover :鼠标指针浮动在上面的元素
- :focus :选择具有焦点的
- :first-child:父元素的首个子元素
CSS3新增
- :first-of-type 表示一组同级元素中其类型的第一个元素
- :last-of-type 表示一组同级元素中其类型的最后一个元素
- :only-of-type 表示没有同类型兄弟元素的元素
- :only-child 表示没有任何兄弟的元素
- :nth-child(n) 根据元素在一组同级中的位置匹配元素
- :nth-last-of-type(n) 匹配给定类型的元素,基于它们在一组兄弟元素中的位置,从末尾开始计数
- :last-child 表示一组兄弟元素中的最后一个元素
- :root 设置HTML文档
- :empty 指定空的元素
- :enabled 选择可用元素
- :disabled 选择被禁用元素
- :checked 选择选中的元素
- :not(selector) 选择与 不匹配的所有元素
- 伪元素选择器
- :first-letter :用于选取指定选择器的首字母
- :first-line :选取指定选择器的首行
- :before : 选择器在被选元素的内容前面插入内容
- :after : 选择器在被选元素的内容后面插入内容
- 属性选择器
- [attribute] 选择带有attribute属性的元素
- [attribute=value] 选择所有使用attribute=value的元素
- [attribute~=value] 选择attribute属性包含value的元素
- [attribute|=value]:选择attribute属性以value开头的元素
CSS3新增
- [attribute*=value]:选择attribute属性值包含value的所有元素
- [attribute^=value]:选择attribute属性开头为value的所有元素
- [attribute$=value]:选择attribute属性结尾为value的所有元素
- 层次选择器:CSS3 新增的,p~ul, 选择前面有p元素的每个ul元素
三、选择器的优先级
-
优先规则 内联 > ID选择器 > 类选择器 > 标签选择器
-
优先级计算规则 优先级是由A、B、C、D的值来决定的,其中它们的计算规则如下:
- A = 1 或 A= 0。如果存在内联样式,那么就是 1,否则就是0;
- B = ID选择器出现的次数
- C = 类选择器出现次数 + 属性选择器出现次数 + 伪类选择器出现次数
- D = 标签选择器出现次数 + 伪元素选择器出现次数
-
优先级比较规则
- 从左往右依次进行比较,较大者优先级最高
- 如果相等,则继续往右移动一位进行比较
- 如果4位全部相等,则后面的会覆盖前面的
内联样式的优先级最高,如果外部样式需要覆盖内联样式,就需要使用 !important
四、继承属性
在CSS中,继承是指的是给父元素设置一些属性,后代元素会自动拥有这些属性
关于继承属性,可以分类如下:
- 字体系列属性
- font: 组合字体
- font-family:规定元素的字体系列
- font-weight:设置字体的粗细
- font-size:设置字体的尺寸
- font-style:定义字体的风格
- font-variant:偏大或偏小的字体
- 文本系列属性
- text-indent:文本缩进
- text-align:文本水平对刘
- line-height:行高
- word-spacing:增加或减少单词间的空白
- letter-spacing:增加或减少字符间的空白
- text-transform:控制文本大小写
- direction:规定文本的书写方向
- color:文本颜色
- 元素可见性
- visibility
- 表格布局属性
- caption-side:定位表格标题位置
- border-collapse:合并表格边框
- border-spacing:设置相邻单元格的边框间的距离
- empty-cells:单元格的边框的出现与消失
- table-layout:表格的宽度由什么决定
- 列表属性
- list-style-type:文字前面的小点点样式
- list-style-position:小点点位置
- list-style:以上的属性可通过这属性集合
- 引用
- quotes:设置嵌套引用的引号类型
- 光标属性
- cursor:箭头可以变成需要的形状
注意点
- a 标签的字体颜色不能被继承
- h1-h6 标签字体的大小也是不能被继承的
五、无继承的属性
- display
- 文本属性
- vertical
- text-decoration
- 盒子模型的属性:
- width
- height
- padding
- border
- margin
- 背景属性
- background:组合背景
- background-size
- background-position
- background-image
- background-color
- background-repeat-x
- background-repeat-y
- background-origin
- background-clip
- 定位属性
- float
- 清除浮动
- position
- 生成内容属性
- content
- conter-reset
- conter-increment
- 轮廓样式属性
- outline-style
- outline-width
- outline-color
- outline
- 页面样式属性
- size
- page-break-before
- page-break-after