CSS复合选择器与特性
CSS复合选择器与特性
Mxnecss复合选择器
- 后代选择器
- 子选择器
- 并集选择器
- 伪类选择器
后代选择器
后代选择器又称为包含选择器,可以选择父元素里的子元素。写法是将外层标签写在前面,内层标签写在后面,中间 空格分开。
选择元素 1 里面所有的元素 2
1 | 元素1 元素2 { 样式声明; } |
子选择器
子元素选择器(子选择器)只能选择作为元素作为元素的最近一级子元素。简单理解就是选 亲儿子。元素之间用 大于号 >
隔开
注意: 元素 2 必须是亲儿子。最终选择的是元素 2
1 | 元素1 > 元素2 { 样式声明; } |
并集选择器
选择多组标签,同时为他们定义相同的样式。通过 英文逗号 ,
连接而成
1 | 元素1, 元素2 { 样式声明; } |
伪类选择器
用于 向某些选择器添加特殊的效果,用冒号 :
表示。
1)链接伪类选择器
要按照 LVHA 的顺序声明,hover 常用
1 | a:link /*选择所有未被访问的链接*/ |
2)focus 伪类选择器
:focus
伪类选择器用于获取焦点的表单元素。一般和 input
搭配使用
1 | input:focus { |
…
复合选择器总结
选择器 | 作用 | 特征 | 使用情况 | 隔开符号及用法 |
---|---|---|---|---|
后代选择器 | 用来选择后代元素 | 可以是子孙后代 | 较多 | 符号是空格 .nav a |
子代选择器 | 选择最近一级元素 | 只能选亲儿子 | 较少 | 符号是大于 .nav>p |
并集选择器 | 选择某些相同样式的元素 | 可以用于集体声明 | 较多 | 符号是逗号,.nav, a |
链接伪类选择器 | 选择不同状态的链接 | 跟链接相关 | 较多 | 重点记住a{} 和a:hover{} |
:focus 选择器 | 选择获得光标的表单 | 跟表单相关 | 较少 | 记住input:focus 用法 |
元素显示模式
HTML 元素分为 块元素 和 行内元素。
块元素
常见的块元素有 h1-h6
、p
、div
、ul
、ol
、li
等。
块元素特点:
- 独占一行。
- 高度、宽度、外边距以及内边距都可以控制。
- 宽度默认是容器(父级宽度)的 100%。
- 是一个容器及盒子,里面可以方行内或块级元素。
注意:
- 文字类的标签内不能放块级元素。
- 文字类元素有
p
,h1-h6
,尤其不能放div
元素。
行内元素
常见行内元素:a
、strong
、b
、em
、i
、del
、s
、ins
、u
、span
,典型行内元素是 span
,行内元素也叫内联元素。
行内元素特点
- 相邻行内元素在一行上,一行可以显示多个。
- 高、宽直接设置是无效的。
- 默认宽度就是它本身内容宽度。
- 行内元素只能容纳文本或其他行内元素。
注意
- a 链接里面不能放链接
- 特殊情况链接 a 里面可以放块级元素,但是给 a 转换一下块级模式最安全。
行内块元素
在行内元素中有几个特殊标签——img
, input
、td
,它们 同时具有块元素和行内元素的特点。
行内块元素的特点
- 和相邻元素(行内块)在一行上,之间存在空白缝隙,一行可以显示多个。
- 默认宽度是本身内容宽度。
- 高度、行高、外边距、内边距都可以控制(块级元素特点)。
元素模式 | 元素排列 | 设置样式 | 默认宽度 | 包含 |
---|---|---|---|---|
块级元素 | 一行只能放一个块级元素 | 可以设置高度宽度 | 容器的 100% | 可以包含任何标签 |
行内元素 | 一行可以放多个行内元素 | 本身内容宽度 | 不可以设置宽度高度 | 容纳文本或者其他行内元素 |
行内块元素 | 一行可以放置多个行内块元素 | 可以设置高度宽度 | 本身内容宽度 |
元素模式转换
行内元素和块级元素 可相互转换。场景:比如想要增加链接 a 的触发范围。
行内->块级
1 | a { |
块级->行内
1 | div { |
行内/块级-> 行内块元素
1 | span { |
单行文字垂直居中
line–height = height
当行高小于盒子高度,则文字偏上;当行高大于盒子高度,文字偏下。
CSS 的背景
背景颜色
background-color
定义了元素的背景颜色。
1 | background-color: 颜色值; |
背景图片
background-image
属性描述了元素的背景图像
1 | background-image: none|url(图片url); |
背景平铺
background-repeat
在 HTML 页面上对背景图进行平铺
既可以添加背景图片,也可以添加背景颜色,图片会覆盖颜色。
1 | background-repeat: repeat(默认) | no-repeat | repeat-x | repeat-y; |
背景图片位置
background-position
可以改变图片在背景中的位置。
1 | background-position: x y; |
参数 x 和 y 指 x 左边和 y 坐标,x 和 y 可以使用方位名词或者精确定位。
参数值 | 说明 |
---|---|
length | 百分数 / 由浮点数字和单位字符组成的长度值 |
position | top / center / bottom / left / center / right 方位名词 |
参数是方位名词
- 若两个值都是方位名词,则两个值前后顺序无关,比如
left top
和top left
效果一致。 - 若只指定了一个方位名词,另一个值省略,则第二个值默认居中对齐。
参数是精确单位
- 第一个必定是 x 坐标。第二个是 y 坐标
- 若只指定一个数值,则另一个必定是 y 轴居中
参数是混合单位
- 若是混合单位,则 第一个值是 x 坐标,第二个值是 y 坐标。
背景图像固定(背景附着)
background-attachment
属性设置 背景图像是否随着页面其余部分滚动。
1 | background-attachment: scroll | fixed; |
背景属性复合写法
简化代码,将属性写在同一个属性 background
下。 一般按照约定顺序编写。
1 | background: transparent url(image.jpg) repeat-y fixed top; |
背景颜色半透明
CSS3 提供 background: rgba(r,g,b,a)
属性设置图片透明度,a为透明度。
1 | background: rgba(0, 0, 0, 0.3); |
CSS 的三大特性
CSS 有三个非常重要的特性:层叠性、继承性、优先级。
层叠性
相同选择器设置相同的样式,此时一个样式就会覆盖另一个冲突的样式。层叠性主要解决样式冲突的问题(样式重复)。
样式冲突遵循就近原则,以下代码会采用 color: blue
1 | div { |
继承性
CSS 中子标签会继承父标签的 某些样式,如文本颜色和字号。
子元素可以继承父元素的样式(text-, font-, line-这些元素开头的可以继承,以及 color 属性)
行高的继承性
这个1.5 就是子元素的行高,行高=子元素的文字大小*1.5
1 | body { |
优先级
当一个元素指定多个选择器时,就会有有优先级的产生。
- 选择器相同,则执行层叠性
- 选择器不同,则根据选择器权重执行
选择器 | 选择器权重 |
---|---|
继承或者* |
0,0,0,0 |
元素选择器 | 0,0,0,1 |
类选择器,伪类选择器 | 0,0,1,0 |
ID 选择器 | 0,1,0,0 |
行内样式 style="" |
1,0,0,0 |
!important |
∞ 无穷大 |