# HTML手册
## 标题标签
```
h1~h6
文字加粗
字号逐渐减小
独占一行
```
## 段落标签
```
p
独占一行
段落之间存在间隙
```
## 换行标签
```
br
```
## 水平线标签
```
hr
```
## 文本格式化标签
```
strong 加粗
em 倾斜
ins 下划线
del 删除线
```
## 图像标签
```
img
属性:
src 图片url
alt 替换文本
title 鼠标悬浮在图片上提示文本
width 图片高度
height 图片高度
```
## 超链接
```
a
属性:
href 跳转地址
target="_blank" 新窗口打开页面
```
## 音频标签
```
audio
属性:
src 音频URL
controls 显示视频控制面板
loop 循环播放
autoplay 自动播放
```
## 视频标签
```
video
属性:
src 视频url
controls 显示视频控制面板
muted 静音播放
loop 循环播放
autoplay 自动播放
```
## 列表标签
```
ul 无序列表
ol 有序列表
li 列表项 能放任何东西
dl 定义列表
dt 列表标题
dd 列表项
```
## 表格标签
```
table 表格
tr 行
th 头
td 列
```
## 合并表格
```
rowspan 行跨几行
colspan 列跨几行
```
## 表单
```
form
```
## 输入标签
```
input
属性:
type
text 文本框
password 密码框
radio 单选框
name 同组中只能选一个
checked 默认选中
checkbox 多选框
file 上传文件
multiple 多选文件
placeholder 提示信息
```
## 下拉菜单
```
select 下拉菜单整体
option 每一项
selected 默认选中
```
## 文本域
```
textarea
```
## 标签标签
```
label
for id 绑定id增大选中范围
```
## 按钮标签
```
button
type
submit 提交按钮提交数据到后台
reset 重置按钮
button 普通按钮没有功能
```
## 语义标签
```
div 块级标签
span 行内标签
```
# CSS手册
## 标签选择器
```
标签名 {
}
```
## 类选择器
```
.类名 {
}
```
## id选择器
```
#id名 {
}
```
## 通配符选择器
```
* {
}
```
## 后代选择器
```
div span {
选择所有后代
}
```
## 子代选择器
```
div > span {
只选择一个子代
}
```
## 交集选择器
```
p.box {
选择带有类名为box的p标签
}
```
## 鼠标悬停选择器
```
a:hover {
鼠标悬停
}
```
## 超链接访问前选择器
```
a:link {
超链接访问前
}
```
## 超链接访问后选择器
```
a:visited {
超链接访问后
}
```
## 超链接点击时选择器
```
a:active {
超链接点击时
}
```
## 查找第一个元素选择器
```
标签:first-child
```
## 查找最后一个元素选择器
```
标签:last-child
```
## 查找第N个元素选择器
```
标签:nth-child(N) n从0开始
2n 偶数
2n+1 奇数
```
## 添加内容选择器
```
标签::before {
content : "内容"
}
```
```
标签::after {
content : "内容"
}
```
## 继承性
```
子级默认继承父级的文字控制属性
```
## 层叠性
```
相同的属性后面覆盖前面的
不同的属性会叠加
```
## 优先级
```
直接看vscode 前面的越大越优先(id、类、标签)
```
## 盒子宽度
```
width 宽度
```
## 盒子高度
```
height 高度
```
## 内边距
```
padding 内边距
```
## 外边距
```
margin
```
## 边框线
```
border 宽度 线类型 颜色
solid 实线
dashed 虚线
dotted 点线
```
## 盒子尺寸
```
box-sizing
border-box 内减,不会撑大盒子尺寸
```
## 盒子溢出
```
overflow
hidden 溢出隐藏
scroll 溢出滚动,无论溢出与否都显示滚动条
auto 溢出才滚动
```
## 外边距合并
```
垂直排列的兄弟,上下margin会合并,取最大的值生效
```
## 外边距塌陷
```
父子级标签,子级添加外边距会被父亲抢走
解决方式:
1、取消子级margin,设置父亲padding
2、父级设置overflow: hidden
3、父级设置border-top
```
## 行内元素内外边距
```
行内元素添加margin、padding 无法改变元素垂直
解决方式:
1、给行内元素添加line-height 改变垂直位置
```
## 圆角盒子
```
border-radius
数字+px
```
## 阴影盒子
```
box-shadow
```
## 文字大小
```
font-size 文字大小px,默认16px
```
## 文字粗细
```
font-weight
400 正常
700 加粗
```
## 字体倾斜
```
font-style
normal 正常
italic 倾斜
```
## 文本行高
```
line-height
等于盒子高度的时候单行文字会在盒子里垂直居中
```
## 字体族
```
font-family
字体名 设置字体样式
```
## 文本缩进
```
text-indent
?em 缩进几个字符
```
## 文本水平对齐
```
text-align
left 左对齐
center 居中对齐
right 右对齐
```
## 文本修饰线
```
text-decoration
none 无效果
underline 下划线
line-through 删除线
overline 上划线
```
## 文字颜色
```
color
rgba(r,g,b,a)
```
## 背景色
```
background-color
```
## 背景图
```
background-image url()
```
## 背景图平铺方式
```
background-repeat
no-repeat 不平铺
repeat 平铺
repeat-x 水平方向平铺
repeat-y 垂直方向平铺
```
## 背景图位置
```
background-position
left 左侧
right 右侧
center 居中
top 顶部
bottom 底部
```
## 背景图缩放
```
background-size
cover 等比例缩放背景图完全覆盖背景区、可能背景图片部分看不见
contain 等比例缩放背景图片以完全装入背景区,可能部分区域空白
```
## 背景图固定
```
background-attachment
fixed 固定
```
## 显示模式
```
display
block
独占一行
宽度默认是父级的100%
添加宽高属性生效
lnline-block
一行可显示多个
设置宽高属性不生效
宽高尺寸由内容撑开
inline
一行可以显示多个
设置宽高属性生效
宽高尺寸也可以由内容撑开
```
## 浮动
```
float 让块元素水平排列
left 左对齐
right 右对齐
浮动后的盒子顶对齐
浮动后的盒子具备行内块特点
浮动后的盒子脱标,不占标准流位置
如果父级没有高度,子级无法撑开父亲高度
```
## 清除浮动
```
.clearfix::before,
.clearfix::after {
content: "";
display: table;
}
.clearfix::after {
clear: both;
}
```
## Flex组成
```
设置方式:给父元素设置display:flex,子元素可以自动挤压或拉伸
组成部分:
弹性容器
弹性盒子
主轴:默认在水平方向
侧州:默认在垂直方向
```
## 创建flex容器
```
display: flex;
```
## flex主轴对齐方式
```
justify-content
属性:
flex-start 弹性盒子从起点开始依次排列
flex-end 弹性盒子从终点开始依次排列
center 弹性盒子沿主轴居中排列
space-between 弹性盒子沿主轴均匀排列,空白间隙均分在弹性盒子之间
space-around 弹性盒子沿主轴均匀排列,空白间隙均分在弹性盒子两侧
space-evenly 弹性盒子沿主轴均匀排列,弹性盒子与容器之间间距相等
```
## flex侧轴对齐方式
```
align-items 当前弹性容器内所有弹性盒子的侧轴对齐方式
align-self 单独控制某个弹性盒子的侧轴对齐方式
属性:
stretch 弹性盒子沿测轴线被拉伸至铺满容器
center 弹性盒子沿测轴居中排列
flex-start 弹性盒子从起点开始依次排列
flex-end 弹性盒子从终点开始依次排列
```
## flex主轴方向
```
flex-direction 主轴默认在水平方向,侧轴默认在垂直方向
属性:
row 水平方向,从左向右
column 垂直方向,从上到下
row-reverse 水平方向,从右向左
column-reverse 垂直方向,从下向上
```
## flex弹性伸缩比
```
flex 控制弹性盒子的主轴方向的尺寸 整数数字,占用父级剩余尺寸份数
```
## flex弹性盒子换行
```
flex-wrap 弹性盒子可以自动挤压或拉伸,默认情况在,所有弹性盒子都在一行显示
属性:
wrap 换行
nowrap 不换行
```
## flex行对齐方式
```
align-content
属性:
flex-start 弹性盒子从起点开始依次排列
flex-end 弹性盒子从终点开始依次排列
center 弹性盒子沿主轴居中排列
space-between 弹性盒子沿主轴均匀排列,空白间隙均分在弹性盒子之间
space-around 弹性盒子沿主轴均匀排列,空白间隙均分在弹性盒子两侧
space-evenly 弹性盒子沿主轴均匀排列,弹性盒子与容器之间间距相等
```
## 相对定位
```
position: relative 设置盒子的位置
不脱标,占用自己原来的位置
left
right
top
bottom
值可以写50%
需要加transform:translate(-50%,-50%)
```
## 绝对定位
```
position: absolute
脱标,不占位
显示模式具备行内块特点
设置偏移则相对最近的已经定位的祖先元素改变位置,所以子绝父相
```
## 挪动自己大小的一半
```
transform:translate(-50%,-50%)
```
## 固定定位
```
position:fixed 元素的位置在网页滚动时不会改变
脱标,不占位
显示模式具备行内块特点
```
## 堆叠层级
```
z-index 按照标签书写位置,后来者居上,属性值为数字,取值越大,层级越高
```
## 行内块垂直对齐方式
```
vertical-align
bottom
top
middle
```
## 过渡
```
transition给一个元素在不同状态之间切换的时候增加过渡效果
加到原属性
属性值:
过渡的属性(可以是all) 花费的时间
```
## 透明度
```
opacity 设置整个元素的透明度
```
## 光标类型
```
cursor 鼠标悬停在元素上时显示样式
pointer 小手效果
text 工字型
move 十字光标
```
## 平面转换(2D转换)
```
transform为元素添加动态效果,改变盒子在平面的形态(位移、旋转、缩放、倾斜),通常卸载hover里
属性值:
translate(x轴,y轴) 左/上都为负,值为像素和百分比
rotate(旋转角度) 单位deg 取正顺时针旋转,取负逆时针旋转
transform-origin 水平原点位置 垂直原点位置 。转换原点位置 取值left、top、right、bottom
scale(缩放倍数/x轴/y轴缩放倍数)
skew(倾斜度数)
多重转换:先平移再旋转
```
## 渐变色
```
linear-gradient(
渐变方向(默认从上到下,可以to right/left/top/角度度数)
颜色1 终点位置(百分比),
颜色2 终点位置
)
```
## 径向渐变
```
radial-gradient(
半径(可以是2条) at 圆心位置(像素单位数值/百分比/方位名词),
颜色 终点位置,
颜色 终点位置,
)
```
## 空间平移(3D)
```
transform: translate3d(x,y,z)
translateX()
translateY()
translateZ()
perspective:视距(人眼和屏幕之间的距离,建议800-1200px),给父级元素添加,子级的translateZ就生效了
```
## 空间旋转(3D)
```
transform: 沿着哪个轴旋转
rotateX()
rotateY()
rotateZ()
```
## 动画
```
animation 动画名字 动画花费时间 速度曲线 延迟时间 重复次数 动画方向 执行完毕时状态
定义动画
@keyframes 动画名 {
from {}
to {}
}
@keyframes 动画名 {
0% {}
20% {}
100% {}
}
速度曲线:
linear:匀速
steps(步骤) 分步动画
重复次数:infinite 无限循环
反向:alternate
结束状态:forwards 结束状态 backwards 开始状态
animation-play-state 暂停动画 paused 为暂停
```
## rem适配
```
rem 相对于HTML标签的字号计算结果
```
## 媒体查询
```
@media (媒体特性[width:375px]) {
#差异化CSS样式
选择器 {
}
}
```
## flexible.js
```
flexible.js是淘宝开发的一个用来适配移动端的js库,根据不同的视口宽度设置不同的fontsize
```
## less
```
less是一个CSS预处理器,Less后缀是.less。扩充了CSS语言,使CSS具备一定的逻辑性、计算能力
```
## 页面丝滑滚动
```
html {
scroll-behavior: smooth;
}
```