# 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; } ```