一、私有前缀
w3c提出的某个css属性,在被浏览器正式支持前,浏览器厂商会根据浏览器内核,使用私有前缀来测试该属性,浏览器正式支持改属性后,就不需要该前缀了,Chrome、Safari和Edge浏览器私有前缀-webkit-
,Firefox浏览器私有前缀-moz-
查询css3兼容性网站:https://caniuse.com/
二、新增长度单位
单位 | 含义 |
---|
vh | 视口高度百分比,10vh就是视口高度10% |
vw | 视口宽百分比 |
vmin | 视口宽高最小那个百分比 |
vmax | 视口宽高最大那个百分比 |
rem | 根元素字体大小倍数,只与根原素有关 |
三、新增颜色设置方式
rgba、hls、hlsa
四、新增选择器
动态伪类选择器、目标伪类选择器、UI伪类选择器、语言伪类选择器、结构伪类选择器、否定伪类选择器、伪原素选择器
五、新增盒子属性
box-sizing
盒子模型
值 | 含义 |
---|
content-box(默认值) | 标准盒模型 |
border-box | 怪异盒模型 |
resize
原素可以伸缩,配合overflow
值 | 含义 |
---|
horizontal | 水平方向可以调整 |
vertical | 垂直方向可以调整 |
both | 水平垂直都可以调整 |
box-shadow
阴影
box-shadow:h-shadow v-shadow blur spread color inset;
值 | 含义 |
---|
h-shadow | 必写,水平阴影位置,可以为负 |
v-shadow | 必写,垂直阴影位置,可以为负 |
blur | 可选,模糊距离 |
spread | 可选,阴影外延值 |
color | 可选,阴影颜色 |
inset | 可选,将外部阴影转为内部阴影 |
opacity
为整个原素添加透明效果,取值0-1,0完全透明,1完全不透明
六、新增背景属性
background-origin
背景图原点
值 | 含义 |
---|
content-box | 从content区左顶点显示图像 |
border-box | 从border区左顶点显示图像 |
padding-box(默认值) | 从padding区左顶点显示图像 |
background-clip
设置背景剪裁方式
值 | 含义 |
---|
border-box(默认值) | 从border区向外剪裁背景 |
padding-box | 从padding区向外剪裁背景 |
content-box | 从content区向外剪裁背景 |
text | 背景只呈现在文字上,文字颜色设置transport,需要加-webkit- 前缀 |
background-size
背景大小
值 | 含义 |
---|
auto(默认值) | 图片真实大小 |
contain | 图片宽高等比例缩放,图片完整放入容器,超出部分平铺 |
cover | 等比例缩放,图片占满容器,超出部分剪裁 |
像素 | 宽高两个值 |
百分比 | 宽高两个值 |
background
复合属性
background:颜色 url() 重复 位置 / 大小 原点 剪裁方式;
- 引入多个背景图片
background:url() no-repeat left top,
url() no-repeat right top,
url() no-repeat left bottom,
url() no-repeat right bottom,
七、新增边框属性
border-radius
边框圆角,一般设置border-radius:50%,四个角可以分开设置,分开设置角复合写法border-radius:左上x 右上x 右下x 左下x/左上y 右上y 右下y 左下y;
特性 | 含义 |
---|
border-top-left-radius | 上左角,一个值是圆半径,两个值设置椭圆 |
border-top-right-radius | 上右角 |
border-bottom-right-radius | 下右角 |
border-bottom-left-radius | 下左角 |
- outline外轮廓(了解)
属性 | 含义 |
---|
outline-style | none(默认值,无轮廓) ,dotted(点线),dashed(虚线),solid(实线),double(双实线) |
outline-color | 颜色 |
outline-width | 宽 |
outline | 上边三个简写,无顺序要求 |
outline-offset | 外轮廓与边框距离 |
八、新增文本属性
text-shadow
文本阴影
text-shadow:h-shadow v-shadow blur color;
值 | 含义 |
---|
h-shadow | 水平位置阴影,必写 |
v-shadow | 垂直位置阴影 ,必写 |
blur | 模糊值,可选 |
color | 颜色,可写 |
white-space
文本换行
值 | 含义 |
---|
normal(默认值) | 文本超出边界自动换行,文本中换行被当做空格 |
pre | 原文输出 |
pre-wrap | pre基础上,超出边界换行 |
pre-line | pre基础上,超出边界换行,只识别文本中换行,空格忽略 |
no-wrap | 强制不换行 |
text-overflow
文本溢出
text-overflow:ellipsis;
overflow:hidden;
white-space:nowarp;
值 | 含义 |
---|
clip(默认值) | 内容溢出剪裁 |
ellipsis | 内容溢出,以省略号显示 |
text-decoration
文本修饰
属性 | 含义 |
---|
text-decoration-line | 修饰线位置,none(默认值,无修饰线) ,underline(下划线),overline(上划线) ,line-through(贯穿线) |
text-decoration-style | 修饰线样式,none(默认值,无样式) ,dotted(点线),dashed(虚线),solid(实线),double(双实线) |
text-decoration-color | 颜色 |
text-decoration | 上三个简写 |
-webkit-text-stroke
文本描边,仅支持webkit内核浏览器
-webkit-text-stroke:2px red;
-webkit-text-stroke-color:red;
-webkit-text-stroke-width:2px;
九、新增渐变
linear-gradient
线性渐变
background-image:linear-gradient(red,yellow,green);
background-image:linear-gradient(to top,red,yellow,green);
background-image:linear-gradient(to top right,red,yellow,green);
background-image:linear-gradient(to 45deg,red,yellow,green);
background-image:linear-gradient(red 10px,yellow 10px,green 10px);
radial-gradient
径向渐变
background-image:radial-gradient(red,green,yellow);
background-image:radial-gradient(at left,red,green,yellow);
background-image:radial-gradient(at 100px 100px,red,green,yellow);
background-image:radial-gradient(circle,red,green,yellow);
background-image:radial-gradient(100px 100px,red,green,yellow);
background-image:radial-gradient(red 50px,green 60px,yellow 80px);
- 重复渐变,在没有发生渐变区域,重新发生渐变
background-image:repeating-radial-gradient(red 50px,green 60px,yellow 80px);
background-image:repeating-linear-gradient(red 50px,green 60px,yellow 80px);
十、字体
- web字体
阿里定制字体网址
简写
@font-face{
font-family:'自定义字体名称';
src:url(./xx.ttf);
}
兼容性写法
@font-face {
font-family: 'YourWebFontName';
src: url('YourWebFontName.eot');
src: url('YourWebFontName.eot?#iefix') >format('embedded-opentype'),
url('YourWebFontName.woff') format('woff'), >
url('YourWebFontName.ttf') >format('truetype'),
url('YourWebFontName.svg#YourWebFontName>') format('svg');
}
- 字体图标
阿里字体图标网址
十一、2d变换
translate
位移
transform:translate(x,y);
transform:translateX(x);
transform:translateY(y);
scale
缩放
transform:scale(1);
transform:scaleX(1);
transform:scaleY(1);
rotate
旋转
transform:rotateZ(20deg);
transform:rotate(20deg);
skew
拉伸(了解)
transform:skew(30deg,30deg);
transform:skewX();
transform:skewY();
- 多重变换
transform:translate() rotate();
origin
变换原点
transform-origin:left top;
transform-origin:left;
transform-origin:50% 50%;
transform-origin:50px 50px;
十二、3d变换
transform-style
3d空间,原素进行3d变换,要开启3d空间
值 | 含义 |
---|
flat(默认值) | 让子元素位于此原素2d空间 |
preserve-3d | 位于3d空间 |
perspective
景深,指观察者与z=0距离,设置给发生3d变换父原素,默认值none,取值不能为负perspective-origin
透视点位置translate3d
平移
transform:translateZ();
transform:translate3d(x,y,z);
rotate3d
旋转
transform:rotateX();
transform:rotateY();
transform:rotate3d(1,0,0,30deg);
scale3d
缩放
transform:scaleZ();
transform:scale3d(x,y,z)
backface-visibility:hidden
背部不可见
十三、过渡
transition-property
允许过渡的属性,值为数字或能转为数字的属性,常见的:颜色、长度值、z-index、opacity、百分比、2d变换、3d变换、阴影
值 | 含义 |
---|
none | 不过渡任何属性 |
all | 所有能过渡的属性允许过渡 |
属性名 | 多个以逗号分隔 |
transition-duration
过渡时间,默认值0,单位s或ms,只有一个值表示所有属性过渡时间,设置多个时间用逗号隔开transition-delay
过渡延时transition-timing-function
过渡类型
值 | |
---|
ease(默认值) | 平滑过渡(慢-快-慢) |
linear | 匀速 |
ease-in | 慢-快 |
ease-out | 快-慢 |
ease-in-out | 更慢-快-更慢 |
step-start | 不考虑过渡时间,直接到达终点 |
step-end | 与上一个相反 |
steps(10,start) | 分步过渡 |
cubic-bezier() | 贝塞尔曲线网址 |
- 复合属性
transition:1s 0.5s all linear;
十四、动画
- 定义关键帧
@keyframes xxx{
from{},
to{}
}
@keyframes xxx{
0%{},
100%{}
}
- 给原素应用动画
属性 | 含义 |
---|
animation-name | 给原素指定具体动画 |
animation-duration | 动画所需时间 |
animation-delay | 动画延迟时间 |
- 其他属性
属性 | 含义 |
---|
animation-timing-function | 动画类型,取值和transition-timing-function一样 |
animation-iteration-count | 动画播放次数,infinite(无限播放) |
animation-direction | 动画播放的方向,normal(默认值),reverse(反向),alternate(先正向,再反向,并持续交替),alternate-reverse(先反向,再正向,并持续交替) |
animation-fill-mode | 动画之外的状态,forwards(设置状态为结束时状态),backwards(设置状态为开始时状态) |
animation-play-state | 设置动画播放状态,running(默认值,运动),paused(暂停) |
- 复合属性
animation:动画名 1s 1s linear infinite reverse forwards;
- 与过渡区别
过渡需要触发条件,动画可以对每一帧设置
十五、多列布局
属性 | 含义 |
---|
column-count | 指定列数 |
column-width | 指定列宽 |
columns | column-count与column-width简写 |
column-gap | 设置列边距 |
column-rule | 设置列边框,column-rule-style、column-rule-color、column-rule-width简写 |
column-span | 设置是否跨列,要设置给具体原素上,上面几个属性是给容器设置的,取值 : none,all |
十六、媒体查询
- 媒体类型,并不会提高优先级,依旧后者覆盖前者
类型 | 含义 |
---|
@media all {} | 所有类型显示 |
@media print {} | 打印机类型显示 |
@media screen {} | 屏幕类型显示 |
- 媒体特性
特性 | 含义 |
---|
@media (width:100px) {} | 视口宽 |
@media (height:100px) {} | 视口高 |
@media (min-weight:100px) {} | 视口宽大于等于100px |
@media (max-weight:100px) {} | 视口宽小于等于100px |
@media (device-weight:100px) {} | 设备宽等于100px |
@media (max-device-weight:100px) {} | 设备宽小于等于100px |
@media (min-device-weigt:100px) {} | 设备宽大于等于100px |
@media (orientation:) {} | 视口旋转方向,取值 : portrait(纵向,高度大于等于宽度),landscape(横向,宽度大于高度) |
- 运算符
运算符 | 含义 |
---|
@media screen and (min-width:100px) {} | 且 |
or或逗号 | 或 |
not | 非 |
only | 肯定 |
十七、常用阈值
- 屏幕分成几个区间,如:
超小屏幕(0-768px)、
中等屏幕(768px-992px)、
大屏幕(992px-1200px)、
超大屏幕(大于1200px) - 结合外部样式用法
<link rel="stylesheet" media="only screen and (max-width:768px)" href="xx.css">
@media only screen and (max-width:768px) {}
十八、BFC
- 简介
BFC
Black Formatting Context(块级格式上下文),可以理解为原素一个“特异功能”。默认情况下,该“特异功能”关闭,满足某些条件后,激活。 所谓“特异功能”,就是该原素创建了BFC(又称开启了BFC)
- 特点
原素开启BFC后,子元素不会产生margin塌陷,自己不会被其他浮动元素覆盖,即使子原素设置浮动,自身高度也不会塌陷
- 开启BFC
根元素、
浮动原素、
绝对定位、固定定位原素、
行内块原素、
表格单元格(table、thead、tbody、tfoot、th、td、tr、caption)、
overflow值不为visible原素、
伸缩项目、
多列容器、
column-span为all原素(即使该原素没有包裹在多列容器中)、
display值设置为float-root