字体图标
引用方法:
类名引用
通过link标签引入字体图标css样式
<link rel="stylesheet" href="./fonts/iconfont.css">
引用类名(必须添加iconfont)
<i class="iconfont icon-arrow-right"></i>
使用伪元素使用字体图标(必须声明字体系列为:iconfont)
i{
font-family:'iconfont';
}
i::before{
/* 不能忘,\ */
content:'\e63b';
}
'\e63b':### unicode编码&#x后几位()
2d平面转换
x,y轴
x轴原点往右为正反之为负
y轴原点往下为正反之为负
2d平面移动
代码规范: transform:translate(x,y);
2d旋转
代码规范: transform:rotate(45deg);
deg:单位'度'
正数为顺时针,负数为 逆时针
缩放
代码规范 transform:scale(x,y);
默认沿盒子中心点向x,y邹缩放.
括号内一般只写一个数;大于1表示放大倍数;小于1表示缩小;等于1相当于不缩放
盒子和平居中方法
方法一 :
/* 子绝父相 */
position:absolute;
top:50%;
left:50%;
/* 有兼容性问题 */
transform:translate(-50%,-50%);
/* 推荐使用 */
margin-left:自身宽度一半;
margin-top:自身高度一半;
方法二(原始方法):
/* 子绝父相 */
position:absolute;
top:0;
left:0;
right:0;
bottom:0;
margin:auto;
方法三(flex):
display:flex;
justify-content:center;
align-items:center;
渐变
代码规范: background-image:(方向(不写默认为自上而下,也可以写角度 ),颜色1,颜色2,...);
方向:
to bottom(默认值):由上至下 或 180deg
其他自行百度
3d转换
3d坐标系
x,y,z
z轴垂直屏幕向外为正反之为负
3d位移
代码规范:
transform:translate3d(x,y,z);(符合写法)
transform:translateX(x);
transform:translateY(y);
transform:translateZ(z);
透视
作用:3d转换实现近大远小的视觉效果
一般取值为800-1200px之间
一定要给父级添加
代码规范
perspective: 800px;
左手法则
大拇指指向每根坐标轴的正方向则四指方向为旋转的方向
3d旋转
沿X轴方向旋转:transform:rotateX(度数);
沿X轴旋转类似于单杠
transform:rotateX(360deg)
沿Y轴方向旋转:transform:rotateY(度数);
沿Y轴旋转类似于钢管舞
transform:rotateY(360deg)
沿Z轴方向旋转:transform:rotateZ(度数);
沿Z轴旋转类似于平面旋转(沿中心点旋转)
transform:rotateZ(360deg)
立体呈现
代码规范
给父级元素添加,让子元素开启3d立体空间
transform-style: preserve-3d;
动画
通过@keyframes 名称{}定义动画而后在通过animation属性调用动画;
选择器{
/* 连写,没有顺序之分但第一个时间为完成一个动画的时间;动画名称 动画执行时间 必写 */
animation:动画名称 动画执行时间 速度曲线 重复次数 延迟时间 下一周期动画方向 执行完毕时的状态;
}
@keyframes 名称{
form{}
to{}
}
/* 或 */
@keyframes 名称{
0%{}
25%{}
50%{}
75%{}
100%{}
}
速度曲线之逐帧动画
animation:动画名称 动画执行时间 steps(步长) 重复次数 延迟时间 下一周期动画方向 执行完毕时的状态;
暂停动画
/* animation-play-state默认值为running:执行动画 */
选择器:hover 选择器{
/* 暂停 */
animation-play-state: paused;
}
物理分辨率和逻辑分辨率
物理分辨率:硬件所支持的,屏幕出厂就设定无法修改
逻辑分辨率:软件可以达到的, 我们开发中写的是逻辑分辨率
视口
视口就是浏览器展示内容的区域
理想视口:设备有多宽,网页就展示多宽
视口标签
有了视口标签,我们就可以做到理想视口
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
- width=device-width:视口宽度=设备宽度
- initial-scale=1.0:初始页面缩放倍数
- maximum-scale=1.0 最大缩放倍数
- user-scalable=0 不允许用户缩放页面(移动端) 或者为 no 如果为 yes 则允许用户缩放
二倍图
是页面图片效果更清晰,更清楚
百分比布局(流式布局)
高度固定,宽度自适应
flex布局(弹性布局)
书写代码:display:flex;
一定要写给亲父亲;
主轴对齐方式
书写代码:justify-content:属性值;
写给父级
| 属性值 | 作用 |
|---|---|
| flex-start | 默认值, 起点开始依次排列 |
| flex-end | 终点开始依次排列 |
center | 沿主轴居中排列 |
space-around | 弹性盒子沿主轴均匀排列, 空白间距均分在弹性盒子两侧 |
space-between | 弹性盒子沿主轴均匀排列, 空白间距均分在相邻盒子之间 |
space-evenly | 弹性盒子沿主轴均匀排列, 弹性盒子与容器之间间距相等 |
侧轴对齐方式
书写代码:align-items:属性值;
写给父级
| 属性值 | 作用 |
|---|---|
| flex-start | 起点开始依次排列 |
| flex-end | 终点开始依次排列 |
center | 沿侧轴居中排列 |
| stretch | 默认效果, 弹性盒子沿着侧轴线被拉伸至铺满容器 |
伸缩比
书写代码:flex:整数;
写给子级
示例代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box {
display: flex;
width: 300px;
height: 100px;
border: 1px solid red;
}
// 此时每个span各占父元素剩余空间的1/3
.box span {
flex: 1;
}
</style>
</head>
<body>
<div class="box">
<span>1</span>
<span>2</span>
<span>3</span>
</div>
</body>
</html>
圣杯布局
左右两边固定高宽不变,中间自适应;
扩充
flex布局的元素没有行内行内快快元素之分,可以直接设置宽高;
flex在pc端有兼容性问题,移动端没有兼容性问题可以放心使用
改变主轴方向
主轴方向默认在水平方向,侧轴默认在垂直方向
代码:flex-direction:属性值;
| 属性值 | 作用 |
|---|---|
row | 行, 水平(默认值) |
column | 列, 垂直 |
| row-reverse | 行, 从右向左 |
| column-reverse | 列, 从下向上 |
侧轴
控制子元素换行
flex-wrap:warp;(换行)
多行侧轴对齐方式
align-content:属性值;
属性值与主轴对齐方式一致
rem适配
rem是一个长度单位,1rem等于根html一个字体大小
/* 根html 为 12px */
html {
font-size: 12px;
}
/* 此时 div 的字体大小就是 24px */
div {
font-size: 2rem;
}
rem的优势:父元素文字大小可能不一致, 但是整个页面只有一个html,可以很好来控制整个页面的元素大小。
此时一个rem等于12px
媒体查询
媒体查询 media query 可以自动检测视口的宽度。
媒体查询一个非常大的作用是:
根据屏幕宽度修改html文字大小。使用媒体查询, 根据不同的视口宽度, 设置不同的根字号 ,就完成了适配
@media (视口宽度){
html{
字体大小设置为视口宽度的十分之一
}
}
@media (视口宽度){
html{
字体大小设置为视口宽度的十分之一
}
}
...
flexible.js
该文件可以自动识别视口宽度,并设置根字号
设计稿px值转化rem值
rem=设计稿px值 / 根字号
less
less 可以帮我们把px单位转换到rem单位。
Less是一个CSS预处理器, Less文件后缀是.less
扩充了 CSS 语言, 使 CSS 具备一定的逻辑性、计算能力。
Less插件:Easy Less(less文件保存自动生成css文件)