如同人类的的进化一样,CSS3是CSS2的“进化”版本,在CSS2基础上,增强或新增了许多特性, 弥补了CSS2的众多不足之处,使得Web开发变得更为高效和便捷。Html4-html5 css2- css3
-
CSS3的现状
-
如何对待
- 坚持渐进增强原则
准备工作
统一环境
-
如何使用手册
元字符 | 含义 | 示例 |
[] | 全部可选项 | padding: [<length> | <percentage>]{1, 4} |
|| | 并列 | border: <line-width> || <line-style> || <color> |
| | 多选一 | position: static | relative | absolute | fixed |
? | 0个或1个 | box-shadow: none | <shadow>[, <shadow>]*<shadow>: inset? && <length>{2, 4} && <color>? |
* | 0个或多个 | |
{} | 范围 |
基础知识
属性选择器
选择器 | 示例 | 含义 |
E[attr] | 存在attr属性即可 | |
E[attr=val] | 属性值完全等于val | |
E[attr*=val] | 属性值里包含val字符并且在“任意”位置 | |
E[attr^=val] | 属性值里包含val字符并且在“开始”位置 | |
E[attr$=val] | 属性值里包含val字符并且在“结束”位置 |
-
伪类
选择器 | 示例 | 含义 |
E:first-child | 其父元素的第1个子元素 | |
E:last-child | 其父元素的最后1个子元素 | |
E:nth-child(n) | 其父元素的第n个子元素 | |
E:nth-last-child(n) | 其父元素的第n个子元素(倒着数) |
-
伪元素
-
颜色
RGBARed、Green、Blue、Alpha即RGBAHue、Saturation、Lightness、Alpha即HSLA不同的颜色表示方法其取值也不相同,具体如下:R、G、B 取值范围0~255HSLAH 色调 取值范围0~360,0/360表示红色、120表示绿色、240表示蓝色S 饱和度 取值范围0%~100%L 亮度 取值范围0%~100%A 透明度 取值范围0~1RGBA、HSLA可应用于所有使用颜色的地方。见代码示关于CSS透明度:1、opacity只能针对整个盒子设置透明度,子盒子及内容会继承父盒子的透明度;2 、transparent 不可调节透明度,始终完全透明
-
文本
-
盒模型
-
边框
-
边框圆角
-
边框阴影
-
背景
- background-size
通过background-size设置背景图片的尺寸,就像我们设置img的尺寸一样,在移动Web开发中做屏幕适配应用非常广泛。其参数设置如下:a) 可以设置长度单位(px)或百分比(设置百分比时,参照盒子的宽高)b) 设置为cover时,会自动调整缩放比例,保证图片始终填充满背景区域,如有溢出部分则会被隐藏。c) 设置为contain会自动调整缩放比例,保证图片始终完整显示在背景区域。2、background-origin通过background-origin可以设置背景图片定位(background-position)的参照原点。其参数设置如下:border-box以边框做为参考原点;padding-box以内边距做为参考原点;content-box以内容区做为参考点;3、background-clip通过background-clip,可以设置对背景区域进行裁切,即改变背景区域的大小。其参数设置如下:border-box裁切边框以内为背景区域;padding-box裁切内边距以内为背景区域;content-box裁切内容区做为背景区域;4、多背景以逗号分隔可以设置多背景,可用于自适应布局
-
渐变
-
线性渐变(渐进增强原则)
-
径向渐变
-
过渡
属性 | 示例 | 含义 |
transition-property | 设置过渡属性 | |
transition-duration | 设置过渡时间 | |
transition-timing-function | 设置过渡速度 | |
transition-delay | 设置过渡延时 |
-
单词
empty | 空的;无意义的;无知的; | 英 ['em(p)tɪ] |
letter | 信;字母,文字; | 英 ['letə] |
transparent | 透明的;显然的;坦率的;易懂的 | 美 [træns'pærənt] |
shodow | 阴影;影子;幽灵;庇护;隐蔽处 | 美 ['ʃædo] |
origin | 起源;原点;出身;开端 | 美 ['ɔrɪdʒɪn] |
clip | 剪;剪掉;缩短 | 美 [klɪp] |
gradient | 梯度;坡度;倾斜度 | 美 ['ɡredɪənt] |
radial | 半径的;放射状的;光线的;光线状的 | 美 ['redɪəl] |
-
边框
-
-
边框圆角
-
-
-
边框阴影
-
1.1.4案例 用css实现
-
渐变
-
-
线性渐变(gradient变化)
-
-
-
径向渐变(radial径向)
-
150px at center,
yellow,
green
); 围绕中心点做渐变,半径是150px,从黄颜色到绿颜色做渐变.1、必要的元素:a、辐射范围即圆半径 (半径越大,渐变效果越大)b、中心点即圆的中心 (中心点的位置是以盒子自身) background:radial-gradient(
150px at left center,
yellow,
green
);以左上角为圆的中心点 background:radial-gradient(
150px at 0px 0px,
yellow,
green
);c、渐变起始色d、渐变终止色2、关于中心点:中心位置参照的是盒子的左上角3、关于辐射范围:其半径可以不等,即可以是椭圆div{
width:300px;
height:300px;
margin:100px auto;
background:radial-gradient(
250px at0px0px,
yellow,
green
);
border-radius:150px;
}
-
背景
- background-size设置背景图片的尺寸
background-size: 100% auto; 当宽度发送改变时,高度会有内容溢出。
常规用法,通过百分百,和像素来调整背景的尺寸. background-size:auto100%; cover会自动调整缩放比例,保证图片始终填充满背景区域,如有溢出部分则会被隐藏。整个背景图片完整显示在背景区域.contain会自动调整缩放比例,保证图片始终完整显示在背景区域。也可以使用长度单位或百分比案例:全屏背景自动适应.
- background-origin(原点,起点)设置背景定位的原点
-
过渡(transition)
-
2D转换transform
- 缩放scale (x, y)可以对元素进行水平和垂直方向的缩放,x、y的取值可为小数,不可为负值;
- 移动translate(x, y)可以改变元素的位置,x、y可为负值;
- 旋转rotate(30deg)可以对元素进行旋转,正值为顺时针,负值为逆时针;
- skew(30deg,30deg)倾斜
-
单词:
transition | 过渡;转变; | [træn'zɪʃən] |
property | 性质,性能;财产;所有权 | ['prɑpɚti] |
duration | 持续,持续的时间,期间 | [du'reʃən] |
transform | 改变,使…变形;转换 | [træns'fɔrm] |
scale | 规模;比例; | [skel] |
rotate | 旋转;循环 | ['rotet] |
translate | 转变为;调动 | [træns'let] |
skew | . 斜交;歪斜 | [skjuː] |
perspective | 观点;远景;透视图 | [pɚ'spɛktɪv] |
preserve | 保存;保护;维持; | [prɪ'zɝv]] |
animation | 活泼,生气;激励;卡通片绘制 | [,ænɪ'meʃən] |
iteration | 迭代;反复;重复 | [,ɪtə'reʃən] |
inifinite | 无限的,无穷的;无数的;极大的 | ['ɪnfɪnət] |
alternate | 使交替;使轮流 | ['ɔltɚnət] |
1、3d变换
rotateX() 沿着x轴旋转
rotateY() 沿着y轴旋转
rotateZ() 沿着z轴旋转
translateX() 沿x轴位移
translateY() 沿Y轴位移
translateZ() 沿Z轴位移 translateZ 需要配合透视使用
旋转方向:
对着正方向去看 都是顺时针旋转
backface-visibility:hidden 背面不可见
伪元素 获取自定义属性的值
content:attr(data-text);
// 自定义属性的作用 存储数据
<span data-text="传">传</span>
透视
如果希望看到 3d效果 需要添加透视 近大远小
透视 设置是 盒子 和 用户眼睛的距离,加给变换元素的父盒子
透视的值越大效果越不明显 perspective:1000px;
透视产生的3d效果,只是视觉上的呈现,并不是真正的3d
真正的3d的盒子
让子盒子保持真正的3d效果
transform-style:perserve-3d;
注意点:加给 父盒子
动画: css3中也可以来定义动画
和 js使用函数类似 先定义 在调用
function say(){}
定义动画:
@keyframes 动画名称{
from{
起始状态
} to{
结束状态
} }
@keyframes 动画名称{
0%{
} 30%{
}
100%{
} }
调用动画
animation: 动画名称 持续时间 ;
调用动画: 动画名称 持续时间 执行次数 是否反向 延迟执行 运动曲线..
动画名称: animation-name: move
单次动画执行时间:animation-duration: 2s;
重复次数 animation-iteration-count: 1; infinite 无数次
动画方向:animation-direction alternate:交替 reverse 反向
动画延迟:animation-delay: 1s;
动画结束后的所保持的状态:
backwards:保持动画开始前的状态
forwards:保持动画结束后的状态
运动曲线:animation-timing-function
linear 运算 ease-in-out :先加速后减速 steps
steps(n) 让动画分步完成
animation-timing-function: steps(15);
动画的播放状态 :paused 暂停 running 运行
animation-play-state: paused;