文章概述
本篇文章记录CSS3的笔记。
浏览器样式兼容
css样式兼容老版本浏览器,需要在css样式属性加前缀:
- firefox: -moz-
- safari: -webkit-
- chrome: -webkit-
- opera: -o-
- IE9: -ms-
边框
CSS3边框属性:
- border-radius 圆角边框
- box-shadow 边框阴影
- border-image 边框图片
圆角边框
1 | border-radius |
border-radius对应以下四个角:
- border-top-left-radius
- border-top-right-radius
- border-bottom-right-radius
- border-bottom-left-radius
1 | 【注意】 |
属性值单位
- length 尺寸单位定义圆角的形状。
- % 以百分比定义圆角的形状。
语法格式
1 | border-radius: 1-4 length|% |
- 单个值
1 | border-radius:2em; |
- 多个值
1 | border-radius: 2em 1em 4em / 0.5em 3em; |
示例
设置div的圆角?
1 | div{ |
边框阴影
box-shadow 用于向方框添加阴影;
语法格式
1 | box-shadow: h-shadow v-shadow blur spread color inset; |
1 | div { |
边框图片
IE11支持
定义语法
通过CSS3的border-image属性,您可以使用图片来创建边框.
border-image是border-image-* 属性的简写属性,用于设置以下属性:
- border-image-source 用在边框的图片的路径。
- border-image-slice 图片边框向内偏移。
- border-image-width 图片边框的宽度。
- border-image-outset 边框图像区域超出边框的量。
- border-image-repeat 图像边框是否应平铺(repeat)、铺满(round)或拉伸(stretch)。
示例
1 | div{ |
背景
CSS3背景属性:
- background-clip 规定背景的绘制区域。
- background-origin 规定背景图片的定位区域。
- background-size 规定背景图片的尺寸。
支持新的背景属性的浏览器:
- Internet Explorer 9+、
- Firefox、
- Chrome、
- Safari
- Opera 。
背景尺寸
- background-size 属性规定背景图片的尺寸。
- 以像素或百分比规定尺寸。
语法格式
1 | background-size: length|%|cover|contain; |
示例
1 | div{ |
背景图片定位区域
- background-origin 属性规定背景图片的定位区域。
- background-origin 属性规定background-position属性相对于什么位置来定位。
- 背景图片可以放置于content-box(内容区)、padding-box(padding以内)或border-box(边框线以内)区域。
语法格式
1 | background-origin: padding-box|border-box|content-box; |
示例
1 | div{ |
背景绘制区域
background-clip 属性规定背景的绘制区域。
语法格式
1 | background-clip: border-box|padding-box|content-box; |
示例
1 | div{ |
多重背景图
CSS3允许background-image为元素使用多个背景图像,按顺序会重叠。
1 | body{ |
文本效果
概览
新的文本属性:
- text-shadow 向文本添加阴影。
- word-wrap 允许对长的不可分割的单词进行分割并换行到下一行。
文本阴影
- 在 CSS3 中,text-shadow可向文本应用阴影。
- 能够规定水平阴影、垂直阴影、模糊距离,以及阴影的颜色:
- Internet Explorer 9以及更早的版本,不支持text-shadow属性。
语法格式
1 | text-shadow: h-shadow v-shadow blur color; |
注释:
- text-shadow 属性向文本添加一个或多个阴影。
- 该属性是逗号分隔的阴影列表,每个阴影有两个或三个长度值和一个可选的颜色值进行规定。
- 省略的长度是 0。
示例
1 | h1{ |
自动换行
允许对长的不可分割的单词进行分割并换行到下一行。
语法格式
1 | word-wrap: normal|break-word; |
示例
1 | p.test {word-wrap:break-word;} |
颜色
css3支持hsl,即色调、饱和度、亮度来表示颜色值:
- H:Hue(色调)。0(或360)表示红色,120表示绿色,240表示蓝色,也可取其他数值来指定颜色。取值为:0 - 360
- S:Saturation(饱和度)。取值为:0.0% - 100.0%
- L:Lightness(亮度)。取值为:0.0% - 100.0%
1 | .test{background-color:hsl(360,50%,50%);} |
字体
- 在 CSS3 之前,web 设计师必须使用已在用户计算机上安装好的字体。
- 通过 CSS3,web 设计师可以使用他们喜欢的任意字体。
- 当您您找到或购买到希望使用的字体时,可将该字体文件存放到 web 服务器上,css中指定@font-face规则,它会在需要时被自动下载到用户的计算机上。
浏览器支持
- Firefox、Chrome、Safari 以及 Opera 支持 .ttf (True Type Fonts) 和 .otf (OpenType Fonts) 类型的字体。
- Internet Explorer 9+ 支持新的 @font-face 规则,但是仅支持 .eot 类型的字体 (Embedded OpenType)。
- 注释:Internet Explorer 8 以及更早的版本不支持新的 @font-face 规则。
语法定义
定义@font-face规则
- 在新的 @font-face 规则中,您必须首先定义字体的名称(比如 myFirstFont),然后指向该字体文件。
- 如需为 HTML 元素使用字体,请通过 font-family 属性来引用字体的名称 (myFirstFont);
- 还可以定义支持其他样式,只需要再写一个@font-face规则,配置指定属性即可;
@font-face规则属性
1 | - font-family name 必需。规定字体的名称。 |
示例
- 自定义外部字体?
1 | <style> |
- 给自定义字体加粗?
1 | <style> |
2D3D转换基点
- transform-origin 属性允许您改变被转换元素基点位置。
- 2D 转换元素能够改变元素 x 和 y 轴。3D 转换元素还能改变其 Z 轴。
浏览器支持
- Internet Explorer 10、Firefox、Opera 支持 transform-origin 属性。
- Internet Explorer 9 支持替代的 -ms-transform-origin 属性(仅适用于 2D 转换)。
- Safari 和 Chrome 支持替代的 -webkit-transform-origin 属性(3D 和 2D 转换)。
- Opera 只支持 2D 转换。
语法定义
1 | transform-origin: x-axis y-axis z-axis; |
示例
设置旋转元素的基点位置:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16div{
position: absolute;
background-color: yellow;
transform: rotate(45deg);
-ms-transform: rotate(45deg); /* IE 9 */
-webkit-transform: rotate(45deg); /* Safari and Chrome */
-moz-transform: rotate(45deg); /* Firefox */
-o-transform: rotate(45deg); /* Opera */
transform-origin:20% 40%;
-ms-transform-origin:20% 40%; /* IE 9 */
-webkit-transform-origin:20% 40%; /* Safari and Chrome */
-moz-transform-origin:20% 40%; /* Firefox */
-o-transform-origin:20% 40%; /* Opera */
}
2D转换
通过 CSS3 转换,我们能够对元素进行移动、缩放、转动、拉长或拉伸。
浏览器支持
- Internet Explorer 10、Firefox 以及 Opera 支持 transform 属性。
- Chrome 和 Safari 需要前缀 -webkit-。
- Internet Explorer 9 需要前缀 -ms-。
转换
transform 属性向元素应用2D或3D转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜。
【语法定义】
1 | transform: none|transform-functions; |
平移
通过 translate() 方法,元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) 位置参数:
1 | /* 值translate(50px,100px)把元素从左侧移动50像素,从顶端移动100像素。*/ |
旋转
通过 rotate() 方法,元素顺时针旋转给定的角度。允许负值,元素将逆时针旋转。1
2
3
4
5
6
7
8/* 值 rotate(30deg) 把元素顺时针旋转 30 度。*/
div{
transform: rotate(30deg);
-ms-transform: rotate(30deg); /* IE 9 */
-webkit-transform: rotate(30deg); /* Safari and Chrome */
-o-transform: rotate(30deg); /* Opera */
-moz-transform: rotate(30deg); /* Firefox */
}
缩放
通过 scale() 方法,元素的尺寸会增加或减少,根据给定的宽度(X 轴)和高度(Y 轴)参数:1
2
3
4
5
6
7
8/* 值 scale(2,4) 把宽度转换为原始尺寸的 2 倍,把高度转换为原始高度的 4 倍。*/
div{
transform: scale(2,4);
-ms-transform: scale(2,4); /* IE 9 */
-webkit-transform: scale(2,4); /* Safari 和 Chrome */
-o-transform: scale(2,4); /* Opera */
-moz-transform: scale(2,4); /* Firefox */
}
斜拉
通过 skew() 方法,元素倾斜给定的角度,根据给定的水平线(X 轴)和垂直线(Y 轴)参数:1
2
3
4
5
6
7
8/* 值 skew(30deg,20deg) 围绕 X 轴把元素斜拉 30 度,围绕 Y 轴斜拉 20 度。*/
div{
transform: skew(30deg,20deg);
-ms-transform: skew(30deg,20deg); /* IE 9 */
-webkit-transform: skew(30deg,20deg); /* Safari and Chrome */
-o-transform: skew(30deg,20deg); /* Opera */
-moz-transform: skew(30deg,20deg); /* Firefox */
}
矩阵变换
- matrix() 方法把所有 2D 转换方法组合在一起。
- matrix() 方法需要六个参数,包含数学函数,允许您:旋转、缩放、移动以及倾斜元素。
- matrix(a,b,c,d,e,f)有六个参数,对应到矩阵如下:
1 | 平移:translate(x,y) === matrix(1,0,0,1,x,y) |
示例
- 用matrix方法将div元素旋转30度?
1 | div{ |
3D转换
- CSS3 允许您使用 3D 转换来对元素进行格式化;
- 转换是使元素改变形状、尺寸和位置的一种效果。
浏览器支持
- Internet Explorer 10 和 Firefox 支持 3D 转换。
- Chrome 和 Safari 需要前缀 -webkit-。
- Opera 仍然不支持 3D 转换(它只支持 2D 转换)。
转换
transform 属性向元素应用2D或3D转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜,与2D转换用法类似。
【语法定义】1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24transform: none|transform-functions;
【属性值】
none 定义不进行转换。
matrix(n,n,n,n,n,n) 定义 2D 转换,使用六个值的矩阵。
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) 定义 3D 转换,使用 16 个值的 4x4 矩阵。
translate(x,y) 定义 2D 转换。
translate3d(x,y,z) 定义 3D 转换。
translateX(x) 定义转换,只是用 X 轴的值。
translateY(y) 定义转换,只是用 Y 轴的值。
translateZ(z) 定义 3D 转换,只是用 Z 轴的值。
scale(x,y) 定义 2D 缩放转换。
scale3d(x,y,z) 定义 3D 缩放转换。
scaleX(x) 通过设置 X 轴的值来定义缩放转换。
scaleY(y) 通过设置 Y 轴的值来定义缩放转换。
scaleZ(z) 通过设置 Z 轴的值来定义 3D 缩放转换。
rotate(angle) 定义 2D 旋转,在参数中规定角度。
rotate3d(x,y,z,angle) 定义 3D 旋转。
rotateX(angle) 定义沿着 X 轴的 3D 旋转。
rotateY(angle) 定义沿着 Y 轴的 3D 旋转。
rotateZ(angle) 定义沿着 Z 轴的 3D 旋转。
skew(x-angle,y-angle) 定义沿着 X 和 Y 轴的 2D 倾斜转换。
skewX(angle) 定义沿着 X 轴的 2D 倾斜转换。
skewY(angle) 定义沿着 Y 轴的 2D 倾斜转换。
perspective(n) 为 3D 转换元素定义透视视图。
旋转
rotateX
1 | div{ |
rotateY
1 | div{ |
矩阵转换
matrix3d(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)有16个参数,对应到矩阵如下:
1 | 平移:translate(x,y,z) === matrix(1,0,0,0,0,1,0,0,0,0,1,0,x,y,z,1) |
嵌套元素如何显示
transform-style 属性规定如何在 3D 空间中呈现被嵌套的元素。
浏览器支持
- Firefox 支持 transform-style 属性。
- Chrome、Safari 和 Opera 支持替代的 -webkit-transform-style 属性。
语法定义
1 | transform-style: flat|preserve-3d; |
js支持
1 | domObj.style.transformStyle="preserve-3d" |
示例
- 使被转换的子元素保留其 3D 转换:
1
2
3
4
5
6div {
transform: rotateY(60deg);
transform-style: preserve-3d;
-webkit-transform: rotateY(60deg); /* Safari 和 Chrome */
-webkit-transform-style: preserve-3d; /* Safari 和 Chrome */
}
透视效果
- perspective规定 3D 元素的透视效果。
- perspective 属性定义 3D 元素距视图的距离,以像素计。该属性允许您改变 3D 元素查看 3D 元素的视图。
- 当为元素定义 perspective 属性时,其子元素会获得透视效果,而不是元素本身。
- perspective 属性只影响 3D 转换元素。
- 常与 perspective-origin 属性一同使用该属性,这样您就能够改变 3D 元素的底部位置。
浏览器支持
- 目前浏览器都不支持 perspective 属性。
- Chrome 和 Safari 支持替代的 -webkit-perspective 属性。
语法格式
1 | perspective: number|none; |
js支持
1 | object.style.perspective=500 |
示例
1 | div{ |
底部位置
- perspective-origin 属性定义3D元素所基于的X轴和Y轴。该属性允许您改变 3D 元素的底部位置。
- 当为元素定义 perspective-origin 属性时,其子元素会获得透视效果,而不是元素本身。
浏览器支持
- 目前浏览器都不支持 perspective-origin 属性。
- Chrome 和 Safari 支持替代的 -webkit-perspecitve-origin 属性。
语法定义
1 | perspective-origin: x-axis y-axis; |
示例
设置 3D 元素的基点位置:
1 | div{ |
背向用户显隐
backface-visibility 属性定义当元素背向用户时是否可见。
浏览器支持
- 只有 Internet Explorer 10+ 和 Firefox 支持 backface-visibility 属性。
- Opera 15+、Safari 和 Chrome 支持替代的 -webkit-backface-visibility 属性。
语法支持
1 | backface-visibility: visible|hidden; |
js支持
1 | object.style.backfaceVisibility="hidden" |
示例
1 | div { |
过渡动画
通过 CSS3,我们可以在不使用 Flash 动画或 JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果。
过渡属性
【transition】
1 | 语法格式: |
transition 过渡的简写属性,用于在一个属性中依次设置四个过渡属性:
- transition-property 规定应用过渡的 CSS 属性的名称。
- transition-duration 定义过渡效果花费的时间。默认是 0。
- transition-timing-function 规定过渡效果的时间曲线。默认是 “ease”。
- transition-delay 规定过渡效果何时开始。默认是 0。
示例:1
2
3
4
5
6
7
8
9div {
transition: width 1s linear 2s;
/* Firefox 4 */
-moz-transition:width 1s linear 2s;
/* Safari and Chrome */
-webkit-transition:width 1s linear 2s;
/* Opera */
-o-transition:width 1s linear 2s;
}
transition-property
transition-property 属性规定应用过渡效果的 CSS 属性的名称。(当指定的 CSS 属性改变时,过渡效果将开始)。
浏览器支持
- Internet Explorer 10、Firefox、Opera 和 Chrome 支持 transition-property 属性。
- Safari 支持替代的 -webkit-transition-property 属性。
- 注释:Internet Explorer 9 以及更早版本的浏览器不支持 transition-property 属性。
语法格式
1 | transition-property: none|all|property; |
transition-duration
transition-duration 属性规定完成过渡效果需要花费的时间(以秒或毫秒计)。
浏览器支持
- Internet Explorer 10、Firefox、Opera 和 Chrome 支持 transition-duration 属性。
- Safari 支持替代的 -webkit-transition-duration 属性。
- 注释:Internet Explorer 9 以及更早版本的浏览器不支持 transition-duration 属性。
语法格式
1 | transition-duration: time; |
transition-timing-function
- transition-timing-function 属性规定过渡效果的速度曲线。
- 该属性允许过渡效果随着时间来改变其速度。
浏览器支持
- Internet Explorer 10、Firefox、Opera 和 Chrome 支持 transition-timing-function 属性。
- Safari 支持替代的 -webkit-transition-timing-function 属性。
- 注释:Internet Explorer 9 以及更早版本的浏览器不支持 transition-timing-function 属性。
语法格式
1 | transition-timing-function: linear|ease|ease-in|ease-out|ease-in-out|cubic-bezier(n,n,n,n); |
示例
- 基本用法:
1 | #div1 {transition-timing-function: linear;} |
- cubic-bezier三次贝塞尔曲线函数来规定速度曲线:
1 | #div1 {transition-timing-function: cubic-bezier(0,0,1,1;} |
transition-delay
transition-delay 属性规定过渡效果延迟执行时间。
浏览器支持
- Internet Explorer 10、Firefox、Opera 和 Chrome 支持 transition-delay 属性。
- Safari 支持替代的 -webkit-transition-delay 属性。
- 注释:Internet Explorer 9 以及更早版本的浏览器不支持 transition-delay 属性。
语法格式
1 | transition-delay: time; |
示例
1 | div { |
浏览器支持
- Internet Explorer 10、Firefox、Chrome 以及 Opera 支持 transition 属性。
- Safari 需要前缀 -webkit-。
- Internet Explorer 9 以及更早的版本,不支持 transition 属性。
- Chrome 25 以及更早的版本,需要前缀 -webkit-。
过渡规则
- CSS3过渡是元素从一种样式逐渐改变为另一种的效果。要实现这一点,必须规定两项内容:
1 | 1> 规定把过渡效果作用在哪个CSS属性上; |
- 过渡效果:开始于指定的CSS属性改变值时。
- 示例场景:CSS属性改变的典型时间是鼠标指针位于元素上时,当指针移出元素时,它会逐渐变回原来的样式;
1 | <style> |
多属性过渡
如需向多个样式添加过渡效果,请添加多个属性,由逗号隔开:
向宽度、高度和转换添加过渡效果:1
2
3
4
5
6div {
transition: width 2s, height 2s, transform 2s;
-moz-transition: width 2s, height 2s, -moz-transform 2s;
-webkit-transition: width 2s, height 2s, -webkit-transform 2s;
-o-transition: width 2s, height 2s,-o-transform 2s;
}
动画
通过 CSS3,我们能够创建动画,这可以在许多网页中取代动画图片、Flash 动画以及 JavaScript。
动画属性概览
1 | 属性 描述 CSS |
动画规则
【@keyframes规则】
- @keyframes 规则用于创建动画。在 @keyframes 中规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果。
- 通过 @keyframes 创建的规则,作用于:animation属性。
浏览器支持
- Internet Explorer 10、Firefox 以及 Opera 支持 @keyframes 规则和 animation 属性。
- Chrome 和 Safari 需要前缀 -webkit-。
- 注释:Internet Explorer 9,以及更早的版本,不支持 @keyframe 规则或 animation 属性。
语法
1 | @keyframes animationname {keyframes-selector {css-styles;}} |
示例
根据keyframes规则定义mylove动画?
1 | <style> |
定义动画规则方式1: from、to;
1 | @keyframes mymove{ |
定义动画规则方式2: %;
1 | @keyframes mymove{ |
动画
animation
- 动画是使元素从一种样式逐渐变化为另一种样式的效果。
- 可以改变任意多的样式任意多的次数。
浏览器支持
- Internet Explorer 10、Firefox 以及 Opera 支持 animation 属性。
- Safari 和 Chrome 支持替代的 -webkit-animation 属性。
- 注释:Internet Explorer 9 以及更早的版本不支持 animation 属性。
语法
1 | animation: name duration timing-function delay iteration-count direction; |
示例
1 | div { |
动画状态
animation-play-state 属性规定动画正在运行还是暂停。
浏览器支持
- Internet Explorer 10、Firefox 以及 Opera 支持 animation-play-state 属性。
- Safari 和 Chrome 支持替代的 -webkit-animation-play-state 属性。
- Internet Explorer 9 以及更早的版本不支持 animation-play-state 属性。
语法
1 | animation-play-state: paused|running; |
js支持
1 | object.style.animationPlayState="paused" |
示例
1 | div { |
动画效果是否可见
animation-fill-mode 属性规定动画在播放之前或之后,其动画效果是否可见。
浏览器支持
- Internet Explorer 10、Firefox 以及 Opera 支持 animation-fill-mode 属性。
- Safari 和 Chrome 支持替代的 -webkit-animation-fill-mode 属性。
- 注释:Internet Explorer 9 以及更早的版本不支持 animation-fill-mode 属性。
语法
1 | animation-fill-mode : none | forwards | backwards | both; |
示例
1 | h1{ |
子内容多列
通过 CSS3,您能够创建多个列来对文本进行布局 - 就像报纸那样!
创建多列
column-count 属性规定元素应该被划分的列数。
浏览器支持
- Internet Explorer 10 和 Opera 支持 column-count 属性。
- Firefox 支持替代的 -moz-column-count 属性。
- Safari 和 Chrome 支持替代的 -webkit-column-count 属性。
- Internet Explorer 9 以及更早版本的浏览器不支持 column-count 属性。
语法
1 | column-count: number|auto; |
示例
将 div 元素中的文本分为三列:1
2
3
4
5div{
-moz-column-count:3; /* Firefox */
-webkit-column-count:3; /* Safari 和 Chrome */
column-count:3;
}
列间隔
column-gap 属性规定列之间的间隔:
浏览器支持
- Internet Explorer 10 和 Opera 支持 column-gap 属性。
- Firefox 支持替代的 -moz-column-gap 属性。
- Safari 和 Chrome 支持替代的 -webkit-column-gap 属性。
- Internet Explorer 9 以及更早版本的浏览器不支持 column-gap 属性。
语法
1 | column-gap: length|normal; |
示例
规定列之间 40 像素的间隔:1
2
3
4
5div {
-moz-column-gap:40px; /* Firefox */
-webkit-column-gap:40px; /* Safari 和 Chrome */
column-gap:40px;
}
列规则
column-rule 属性是一个简写属性,用于设置所有 column-rule-* 属性。
浏览器支持
- Internet Explorer 10 和 Opera 支持 column-rule 属性。
- Firefox 支持替代的 -moz-column-rule 属性。
- Safari 和 Chrome 支持替代的 -webkit-column-rule 属性。
- Internet Explorer 9 以及更早版本的浏览器不支持 column-rule 属性。
语法
1 | column-rule: column-rule-width column-rule-style column-rule-color; |
示例
规定列之间的宽度、样式和颜色规则:1
2
3
4
5div {
-moz-column-rule:3px outset #ff00ff; /* Firefox */
-webkit-column-rule:3px outset #ff00ff; /* Safari 和 Chrome */
column-rule:3px outset #ff00ff;
}
column-rule-style
column-rule-style 属性规定列之间的样式规则。
语法
1 | column-rule-style: none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset; |
示例
1 | div{ |
column-rule-width
column-rule-width 属性规定列之间样式的宽度规则。
语法
1 | column-rule-width: thin|medium|thick|length; |
示例
1 | div { |
column-rule-color
column-rule-color 属性规定列之间样式的颜色规则。
语法
1 | column-rule-color: color; |
示例
1 | div { |
容器界面
在CSS3中,新的用户界面特性包括重设元素尺寸、盒尺寸以及轮廓等。
用户控制容器大小
resize 属性规定是否可由用户调整元素尺寸。
浏览器支持
Firefox、Chrome 以及 Safari 支持 resize 属性。
语法
1 | resize: none|both|horizontal|vertical; |
示例
规定可以由用户调整 div 元素的大小:1
2
3
4div {
resize:both;
overflow:auto;
}
容器内容与修饰
box-sizing 属性允许您以特定的方式定义匹配某个区域的特定元素。
浏览器支持
Internet Explorer、Opera 以及 Chrome 支持 box-sizing 属性。
Firefox 支持替代的 -moz-box-sizing 属性。
语法
1 | box-sizing: content-box|border-box|inherit; |
示例
1 | div { |
容器轮廓偏移
outline-offset 属性对轮廓进行偏移,并在边框边缘进行绘制。
浏览器支持
所有主流浏览器都支持 outline-offset 属性,除了 Internet Explorer。
轮廓与边框不同点
- 轮廓不占用空间
- 轮廓可能是非矩形
语法
1 | outline-offset: length|inherit; |
示例
规定边框边缘之外 15 像素处的轮廓:1
2
3
4
5div{
border:2px solid black;
outline:2px solid red;
outline-offset:15px;
}
函数
CSS 有以下几个函数:
1 | 函数 描述 CSS 版本 |
属性值
attr() 函数返回选择元素的属性值。
语法
1 | attr(attribute-name) |
示例
1 | a:after { |
动态计算长度
calc() 函数用于动态计算长度值。
- 需要注意的是,运算符前后都需要保留一个空格,例如:width: calc(100% - 10px);
- 任何长度值(包括百分号)都可以使用calc()函数进行计算;
- calc()函数支持 “+”, “-“, “*”, “/“ 运算;
- calc()函数使用标准的数学运算优先级规则;
语法
1 | calc(expression) |
示例
1 | #div1 { |
线性渐变
linear-gradient() 函数用于创建一个线性渐变的 “图像”。
- 线性渐变,需要设置起始点和终止色。至少两种颜色,当然也会可以指定更多的颜色去创建更复杂的渐变效果。
语法
1 | background: linear-gradient(direction, color-stop1, color-stop2, ...); |
示例
线性渐变,从红色开始,转为黄色,再到蓝色?
1 | #grad { |
径向渐变
radial-gradient() 函数用径向渐变创建 “图像”。
- 径向渐变由中心点定义。为了创建径向渐变你必须设置两个终止色。
语法
1 | background: radial-gradient(shape size at position, start-color, ..., last-color); |
示例
- 椭圆形的径向渐变
1 | #grad { |
- 圆形径向渐变:
1 | #grad { |
- 不同尺寸大小关键字的使用:
1 | #grad1 { |
重复线性渐变
repeating-linear-gradient() 函数用于创建重复的线性渐变 “图像”。
语法
1 | background: repeating-linear-gradient(angle | to side-or-corner, color-stop1, color-stop2, ...); |
示例
1 | #grad1 { |
重复径向渐变
repeating-radial-gradient()用重复的径向渐变创建图像。用法类似radial-gradient()。