CSS3渐变和变形

264 阅读3分钟

CSS3渐变

  • 渐变是两种或多种颜色之间的过度。
  • CSS3中增加了渐变属性,可以轻松实现渐变效果。
  • 最早支持CSS3渐变的是Webkit内核的浏览器,随后Firefox和Opera等浏览器也相应给予支持,但各浏览器的语法格式不同,显示效果也不同。

1. CSS3线性渐变

线性渐变的过程中颜色沿着一条直线过度:从左到右,从右到左,从顶部到底部,从底部到顶部或者沿着任意轴。
语法:

background: linear-gradient(渐变角度, 颜色值1, 颜色值2, …, 颜色值n);

渐变角度
表示渐变的起始和终止位置,可以用以deg(度)为单位的角度值表示,也可以用关键值表示:
totop,对应0deg
toright,对应90deg
tobottom,对应180deg
toleft ,对应270deg
left bottom,左下角
left top,左上角
颜色值1
颜色值1是起点的颜色,颜色值n是终点的颜色,在它们之间的颜色值表示多种颜色的渐变

2. CSS3径向渐变

径向渐变又称为圆形或椭圆渐变,颜色不是沿着一条直线轴变化,而是从一个中心点向四周进行扩张渐变。
语法:

background: radial-gradient(渐变形状  圆心位置, 颜色值1, 颜色值2, …, 颜色值n);

渐变形状: 用来定义径向渐变形状,取值: circle:圆形渐变
ellipse:椭圆形渐变
圆心位置: 用来定义径向渐变的中心点坐标,使用“at”加上关键词或参数值来定义径向渐变的中心位置。若省略则默认值为center。取值可以是:像素、百分比,left / center / right / top / bottom等。 颜色值1
颜色值1是起点的颜色,颜色值n是终点的颜色,在它们之间的颜色值表示多种颜色的渐变

3. CSS3重复渐变

重复渐变:重复的渐变模式,包括重复线性渐变和重复经向渐变。
语法:

background: repeating-linear-gradient(渐变角度, 颜色值1, 颜色值2, …, 颜色值n);
background: repeating-radial-gradient(渐变形状  圆心位置, 颜色值1, 颜色值2, …, 颜色值n);

CSS3变形

  • CSS3变形是一系列效果的集合,如平移、旋转、缩放、倾斜等。
  • 2012年9月,W3C组织发布了CSS3变形工作草案,包括CSS3 2D变形和3D变形。

1. transform属性

作用:让元素在一个坐标性中变形,包括一系列的变形函数,可以实现元素移动、旋转、缩放等效果。
语法:

transform: none | <transform-function> [<transform-function>]*

transform:适用于内联元素和块元素,默认值为none,表示不变形
transform-function:用于设置变形函数,可以是一个或多个变形函数的列表,中间以空格间隔。

transform常用的2D变形函数功能:

函数功能描述
translate()移动元素,根据X轴和Y轴坐标重新定位元素位置,扩展函数translateX()和translateY()
scale()缩放元素使元素尺寸发生变化,扩展函数scaleX()和scaleY()
rotate()旋转元素,扩展函数rotateX()和rotateY()
skew()使元素倾斜,扩展函数skewX()和skewY()

transform常用的3D变形函数功能:

函数功能描述
translate3d()移动元素,指定3D变形移动位移量
translateZ()指定3D位移在Z轴上的位移量
scale3d()缩放元素
scaleZ()指定Z轴上的缩放量
rotate3d()指定元素具有一个3D旋转的角度
rotateZ()指定元素沿Z轴旋转的角度

2. transform-origin属性

作用:用来指定元素中心点位置,默认情况下,变形的原点在元素中心点。
语法:

transform-origin: x-offset | x-offset-keyword  y-offset | y-offset-keyword
  • x-offset:百分比、em、px等具体值
  • x-offset-keyword:top、right、bottom、left和center等关键词 2D变形中该属性若提供一个属性值,该值表示横坐标,纵坐标默认为50%,若提供两个属性值,分别表示横纵坐标。
    3D变形中该属性还包括了Z轴的第3个值。