平面转换
1. 位移:
位移:transform: translate(水平移动距离, 垂直移动距离);
脱标,不影响其他盒子位置;单独设置水平或垂直移动:设值为0;translateX/Y
用法:子绝父相,盒子水平垂直居中:
position: absolute;
left: 50%; top: 50%;
transform: translate(-50%, -50%);
2. 旋转:
旋转:transform: rotate(角度deg);
转换原点:
transform-origin: 原点水平位置 原点垂直位置;
方位名词、像素单位、百分比
多重转换:有位移,又有旋转:transform: translate(600px) rotate(360deg);
多重转换,将位移translate写到旋转rotate前
3. 缩放:
缩放:使用scale改变元素的尺寸:
transform: scale(x轴缩放倍数, y轴缩放倍数);
scale值大于1表示放大, scale值小于1表示缩小
默认中心原点进行缩放;不影响其他元素
4. 实现渐变背景效果:
background-image: linear-gradient(颜色1,颜色2);
二、空间转换
1.空间位移
空间位移:transform: translate3d(x, y, z);
保留位移效果,立体呈现; 不加3d需要单独写XYZ
2.透视
写到父级,旋转视觉效果,远大近小;像素单位数值, 数值一般在800 – 1200px。
3.立体呈现
谁动给谁,呈现3D效果,使后面的盒子有高度;写给父级的话 效果在子级上;flat不开启3d
4.空间旋转
transform: rotateZ(值); 单杠旋转
transform: rotateX(值); 旋转门
transform: rotateY(值); 转盘
//拓展:rotate3d(x, y, z, 角度度数) :自定义旋转轴的位置及旋转的角度,xyz数字不加单位
5.空间缩放
transform: scaleY(倍数);
transform: scaleZ(倍数);
transform: scale3d(x, y, z);
三、动画
1.动画效果、注意点、语法
动画效果:多个状态间的变化过程,重复播放、最终画面、是否暂停
注意点:定义动画必须写:动画名称和动画时长、多组动画:用逗号隔开
语法:
animation-name: move;
animation-duration: 2s;
@keyframes 动画名 {
form {
/* 动画开始时状态 */
} to {
/* 动画结束时状态 */
}
}
//可以把form和to写成0%-100%
2.动画序列:
可以把form和to写成
0%-25%-50%-100% 调整XY的值
四、移动端WEB
1. 百分比布局/流式布局
宽度百分比自适应,高度px值固定
2. Flex布局/弹性布局
2.1 父项属性
父元素添加 display: flex,子元素可以自动的挤压或拉伸
主轴方向:
flex-direction: row 默认,水平
flex-direction: column 垂直
row-reverse / column-reverse 倒着排序
flex-flow是主轴设置flex-direction 和子元素是否换行flex-wrap的复合
内容主轴对齐方式:
justify-content: center 主轴居中
justify-content: space-around 两边间距小,中间大
justify-content: space-between 两边紧贴父盒子
justify-content: space-evenly 盒子间距均匀
justify-content: flex-start 默认起点依次排列
justify-content: flex-end 终点依次排列
盒子换行:
flex-wrap: no-wrap; 默认,不换行
flex-wrap: wrap; 换行或换列
侧轴对齐方式(适用单行):
align-items:center; 侧轴居中
align-items:stretch; 默认,沿主轴拉伸铺满
align-items:flex-start; 起点开始排列
align-items:flex-end; 终点开始排列
侧轴对齐方式(适用多行):
align-content:center; 多行侧轴居中
align-content:space-around; 两边小,中间大
align-content:space-between; 两边紧贴父盒子
align-content:stretch; 拉伸至父元素高度
align-content:flex-start; 默认头部开始排列
align-content:flex-end; 最后一排开始排列
2.2 子项元素属性
平分父盒子剩余宽度一份,%百分比
* flex: 1;
一个子项在侧轴上的排列方式
* align-self: flex-end / start; 放到最后一排/第一排
align-self: center;
align-self: stretch;
一个子项的排列位置,正值往后移/负值往前移
order:0; 默认
3. 移动适配
3.1 @media 可以针对不同的屏幕尺寸设置不同的样式
rem布局流程:1rem = 1HTML字号大小
媒体查询:不同设备,视口宽度匹配才能调用
@media (width:320px) {
html {
font-size: 32px;
}
}
替代媒体查询:引入js文件后不用再写@medio
js配合rem实现不同宽度设备中,元素等比例缩放
<script src="./js/flexible.js"></script> </body>
Easy Less 插件:提供除法运算,可以不用再每个除法运算;在less里面写的代码会自动生成css文件,网页引入less生成的CSS文件
Less嵌套写法生成后代选择器
父选择器 {
子选择器{}
}
.father {
color: red;
.son {
width: black;
}
}
.father {
color: red;
}
.father .son {
width: black;
}
&:hover{ }不生成后代选择器,表示当前选择器,通常配合伪类或伪元素使用,方便迁移
定义变量:@变量名: 值;
使用变量:CSS属性:@变量名;
@rootsize: 37.5rem;
p{
height: (50/@rootsize);
}
less文件导入:@import “文件路径”; (多个less文件放到一个里面,只引用一个less生成的css文件即可)
less文件导出:less文件第一行添加:out:路径
less禁止导出:less文件第一行添加:out: false
替代less的插件:px to rem,修改root字号
3.2 vw / vh
1vw = 1/100视口宽度
1vh = 1/100视口高度
1. 根据设计稿确定1vw尺寸
2. px单位转换成vw单位尺寸
px / (1/100视口宽度)
4. 响应式布局:BootStrap框架
4.1 媒体查询
@media (min/max-width:750px) {
html {
font-size: 32px;
}
}
@media (min-width:1200px) {
.box {
display: none; //隐藏效果
background-color: red;
}
}link写法:
<link rel="stylesheet" media="(max-width:1200px)" href="./css1.css">
4.2 www.bootcss.com
使用方法
全局CSS样式
栅格系统
原理:将网页等分成12等分,每个元素占对应的份数;
*表示占12份当中的几份;
栅格系统中,不要使用外边距拉开距离;会挤掉;
使用
大屏
响应断点: >= 1200px
版心:1170px
类前缀:col-lg-*
中屏
响应断点:>= 992px
版心:970px
类前缀:col-md-*
小屏
响应断点:>= 768
版心: 750px
类前缀:col-sm-*
超小屏
响应断点: < 768px
版心:100%
类前缀:col-xs-*
组件
作用:封装常见功能的HTML+CSS
分类
布局组件
1. 引入样式表
2. 复制粘贴结构,修改内容
字体图标
1. 引入样式表
2. 空标签粘贴类名
插件使用步骤
官网下载版本文档,放到对应文件夹下引入
1. 引入样式表
<link rel="stylesheet" href="../bootstrap-3.4.1-dist/css/bootstrap.css">
2. 引入js
<script src="../js/jquery.js"></script>
<script src="../bootstrap-3.4.1-dist/js/bootstrap.js"></script>
3. 复制结构,修改内容
根据内容进行删减
官网导航菜单
全局CSS样式:标签样式
表格;按钮;图片;显示隐藏
组件:封装好的项目常见区域
字体图标;版心;导航栏目;菜单栏;进度条;
JavaScript插件:
轮播图;事件;下拉菜单;监听;过渡...