CSS常用知识点汇总
选择器分类
| 选择器类型 | 样式 | 举例/备注 |
|---|---|---|
| 标签选择器 | 标签名 { css的属性名:属性值; } | p {color: red;} |
| 类选择器 | .类名 { css的属性名:属性值; } | .hezi {color: blue; font-size: 15px;} 类名不可数字/下划线开头。并在要应用该样式的标签中增加class属性,属性值为类名,一个标签可同时用多个类名,类名之间以空格隔开 |
| id选择器 | #id名 { css的属性名:属性值; } | #neo {color: blue; font-size: 16px;} 每个html文件只允许使用一次该id选择器设置的样式 并在要应用该样式的标签中增加id属性,属性值为id名 |
| 通配符选择器 | * {css的属性名:属性值;} | * {color: red;} 通配符选择器效果作用整个页面,实际使用频率极低 |
| 后代选择器 | 父级选择器 后代选择器 {css的属性名:属性值;} | 选择器之间有空格,后代选择器包括子级/孙级/重孙级。。。。 |
| 子代选择器 | 父级选择器>子代选择器 {css的属性名:属性值;} | 只选中子代 |
| 并集选择器 | 选择器1, 选择器2, 选择器3, {css的属性名:属性值;} | |
| 交集选择器 | 选择器1选择器2选择器4{css的属性名:属性值;} | 选择器之间没有连接符号 |
| 伪类选择器 | 选择器:hover { css的属性名:属性值; } | 定义鼠标悬停时的状态 |
| 结构伪类选择器 | E:first-child { css的属性名:属性值; } | 匹配父元素中的第一个子元素,并且是E元素。例子:ul li:first-child { css的属性名:属性值; } |
| 结构伪类选择器 | E:last-child { css的属性名:属性值; } | 匹配父元素中的最后一个子元素,并且是E元素。例子:ul li:last-child { css的属性名:属性值; } |
| 结构伪类选择器 | E:nth-child(n) { css的属性名:属性值; } | 匹配父元素中的第n个子元素,并且是E元素。例子:ul li:nth-child(5) { css的属性名:属性值; } |
| 结构伪类选择器 | E:nth-last-child { css的属性名:属性值; } | 匹配父元素中的倒数第n个子元素,并且是E元素。例子:ul li:nth-last-child(6) { css的属性名:属性值; } |
CSS引入方式
| 分类 | 描述 |
|---|---|
| 内嵌式 | CSS写在style标签中 |
| 外联式 | CSS写在单独的.CSS文件中 |
| 行内式 | CSS写在标签的style属性中 |
元素分类
块级元素
显示特点:
- 独占一行
- 宽度默认是父元素的宽度,高度默认由内容撑开
- 可以设置宽高
代表标签:div , p , h系列, ul, li, dl, dt, dd, form, header, nav,......
行内元素
显示特点:
- 一行可以显示多个
- 宽度和高度默认由内容撑开
- 不可以设置宽高
代表标签:a, span, b, u, i, s, strong, ins, em, del.....
行内块元素
显示特点:
- 一行可以显示多个
- 可以设置宽高
代表标签:input, textarea, button, select......
字体属性
属性描述
| 属性 | 表示 | 注意点 |
|---|---|---|
| font-size | 字号 | 数字+px |
| font-family | 字体名称 | 按实际要求 |
| font-weight | 字体粗细 | 加粗(bold/700),不加粗(normal/400) |
| font-style | 习题样式 | 倾斜(italic),不倾斜(normal) |
| font | 字体连写 | 顺序固定,字号/字体必须有 |
font复合属性书写顺序
| 顺序 | 固定顺序/功能 | 说明 |
|---|---|---|
| 1 | font-style/(字体样式) | |
| 2 | font-weight/字体粗细 | |
| 3 | font-size/line-height(字号大小/行高) | size属性必须保留,谷歌默认字号16px,最小值12px |
| 4 | font-family/字体名称 | family属性必须保留 |
文本属性
| 语义 | 属性 | 属性值/效果 | 注意点 |
|---|---|---|---|
| 字体颜色 | color | 关键词/rgb/rgba/十六进制 | |
| 对齐方式 | text-align | left/左对齐 | |
| 对齐方式 | text-align | center/居中 | |
| 对齐方式 | text-align | right/右对齐 | |
| 文本装饰 | text-decoration | none/无效果 | |
| 文本装饰 | text-decoration | overline/上划线 | |
| 文本装饰 | text-decoration | underline/下划线 | |
| 文本装饰 | text-decoration | line-through/删除线 | |
| 文本缩进 | text-indent | 20px | px为像素单位 |
| 文本缩进 | text-indent | 2em | em为当前文本size的字体大小 |
| 行高 | line-height | 50px | px为像素单位 |
| 行高 | line-height | 2 | 文字大小的倍数 |
背景属性
背景常用属性
背景颜色 background-color:pink/#ffffff
背景图 background-img:url("")
背景图平铺方式 background-repeat:repeat(平铺)
background-repeat:no-repeat(不平铺)
background-repeat:repeat-x(沿X轴平铺)
background-repeat:repeat-y(沿Y轴平铺)
背景图位置 background-position:left/左(横向取值)
background-position:center/中(横向取值)
background-position:right/右(横向取值)
background-position:top/上(纵向取值)
background-position:center/中(纵向取值)
background-position:bottom/下(纵向取值)
background-position:10px 10px (xy轴取值,单位px)
背景图片大小
语法:background-size:宽度 高度
| 取值 | 场景 |
|---|---|
| 数字+px | 直接定义图片宽高,可能出现比例失衡 |
| 百分比 | 相当于当前盒子自身宽高的百分比 |
| contain | 包含,将图片等比例缩放,直到不超出盒子大小 |
| cover | 覆盖,将背景图等比例缩放,直到刚好填满盒子无空白 |
盒子模型
模型组成
- 内容:content
- 内边距:padding(内容与边框之间的距离)
- 边框:border
- 外边距:margin(盒子与其他外部元素的距离)
盒子相关属性
内边距:padding
| 属性 | 作用 | 取值/效果 |
|---|---|---|
| padding-top | 上内边距 | 10px |
| padding-bottom | 下内边距 | 11px |
| padding-left | 左内边距 | 12px |
| padding-right | 右内边距 | 13px |
注释:padding简写顺序为 上 右 下 左
外边距:margin
| 属性 | 作用 | 取值/效果 |
|---|---|---|
| marging-top | 上外边距 | 10px |
| marging-bottom | 下外边距 | 11px |
| marging-left | 左外边距 | 12px |
| marging-right | 右外边距 | 13px |
注释:margin简写顺序为 上 右 下 左
边框
| 属性 | 作用 | 取值/效果 |
|---|---|---|
| border-width | 定义边框粗细 | 10px |
| border-color | 边框颜色 | 颜色 |
| border-style | 边框的样式 | none/无线; solid/实线; dashed/虚线; dotted/点状虚线 |
注释:复合属性简介无顺序要求,如:border: 10px solid pink;
可单独定义其中一个方向的边框:border-top / border-bottom / border-left / border-right
属性补充
-
圆角边框
border-radius: 5px; (可取1到4个值,定义不同方向)
-
盒子阴影(box-shadow)
参数 取值/作用 h-shadow 数字+px / 必须,水平偏移量,可负值 v-shadow 数字+px / 必须,垂直偏移量,可负值 blur 数字+px / 可选,模糊度 spread 数字+px / 可选,阴影大小 color 色值 / 阴影颜色 inset inset / 将阴影改为内部阴影 示例: box-shadow: 0px 2px 3px 0px rgb(118 118 118 / 20%);
-
边框合并
border-collapse: collapse;
-
盒子内减属性
box-sizing:border-box;
浮动
特点
-
浮动元素脱离标准流,不占标准流位置
-
比标准流高半个级别,可覆盖标准流内容
-
后一个浮动元素会在前一个浮动元素左右浮动
-
显示效果可一行多个,设置宽高
注意点:浮动元素的text-align:center与margin:0 auto;不生效
父子级标签浮动需清除浮动影响,否则后面内容会跑上来
清除浮动影响的方法
-
双伪元素法(定义类名 .clearfix)
.clearfix::before, .clearfix::after{ connect:""; display: table; } .clearfix::after{ clear: both; } -
单伪元素法(定义类名 .clearfix)
.clearfix::after { content: ''; /* 伪元素添加的标签是行内, 要求块 */ display: block; clear: both; /* 为了兼容性 */ height: 0; visibility: hidden; }
定位
-
定位方式
属性名:position
常见值如下表:
定位方式 属性值 静态定位 static(标准流默认,不用设置) 相对定位 relative 绝对定位 absolute 固定定位 fixed -
设置偏移值
偏移值设置有水平/垂直两个方向,各选一个即可
方向 属性名 属性值 含义 水平 left 数字+px 距离左边的距离 水平 right 数字+px 距离右边的距离 垂直 top 数字+px 距离上边的距离 垂直 bottom 数字+px 距离下边的距离
相对定位
描述:自恋型,相对自己原标准流位置移动
代码:position: relative;
特点:需配合方位属性移动
占位不脱标
应用场景:组CP(子绝父相)/小范围移动
绝对定位
描述:拼爹型,相对非静态定位的父元素进行定位移动
代码:position: absolute;
特点:需配合方位属性移动
不占位脱标
无非静态定位父元素则相对浏览器可视域移动
应用场景:组CP(子绝父相)
固定定位
描述:死心眼型,相对浏览器可视域进行定位移动
代码:position: fixed;
特点:需配合方位属性移动
不占位脱标
相对浏览器可视域移动
应用场景:固定盒子在页面某个位置,如侧边栏等
拓展
-
子绝父相水平垂直操作
/* 定义子绝父相后,在子盒子中设置以下偏移属性 */ left:50%; top: 50%; transform: translate (-50% -50%);
装饰效果属性拓展
行内/行内块元素垂直对齐
属性名:vertical-align
| 属性值 | 效果 |
|---|---|
| baseline | 默认,基线对齐 |
| top | 顶部对齐 |
| middle | 中部对齐 |
| bottom | 底部对齐 |
光标类型
属性名:cursor
| 属性值 | 效果 |
|---|---|
| default | 默认值,通常是箭头 |
| pointer | 小手效果,提示用户可点击 |
| text | 工字型,提示用户可选择文字 |
| move | 十字光标,提示用户可移动 |
溢出部分显示效果
属性名:overflow
| 属性值 | 效果 |
|---|---|
| visible | 可见的,默认值 |
| hidden | 溢出部分隐藏 |
| scroll | 始终显示滚动条 |
| auto | 根据是否溢出,自动显示或隐藏滚动条 |
元素隐藏
-
visibility:hidden
特点:隐藏后占位置
-
display:none
特点:隐藏后不占位置,可改变display:block;使元素重新显示
元素整体透明度
属性名:opacity
属性值:0-1之间的数字
- 1表示完全不透明
- 0表示完全透明
伪类选择器拓展
链接伪类选择器
| 选择器语法 | 功能 |
|---|---|
| a:link{ } | 选中a链接未访问过的状态 |
| a:visited{ } | 选中a链接访问之后的状态 |
| a:hover{ } | 选中鼠标悬停的状态 |
| a:active{ } | 选中鼠标按下的状态 |
焦点伪类选择器
场景:用于选中元素获取焦点时的状态,常见于表单控件
语法:
input:focus {
background-color: skyblue;
}
注意点:表单控件获取焦点时默认会显示外部轮廓线
属性选择器
场景:通过元素上的HTML属性来选择元素,常用于input标签
选择器语法:
| 选择器 | 功能 |
|---|---|
| E[attr] | 选择具有attr属性的E元素 |
| E[attr=“val”] | 选择具有attr属性并且属性值等于val的E元素 |
例如:
input[type="text"] {
background-color: skyblue;
}