第17天
1.CSS
渐变
说明:渐变是CSS3
当中比较丰富多彩的一个特性,通过渐变我们可以实现许多炫丽的效果,有效的减少图片的使用数量,并且具有很强的适应性和可扩展性。
1.1线性渐变(linear-gradient
)
说明:线性渐变指沿着某条直线朝一个方向产生渐变效果,如下图是从红色渐变到蓝色。
to left、top right、to bottom、to top
div { background:linear-gradient(to left, red , blue) }
div { background:linear-gradient(to right, red , blue) }
div { background:linear-gradient(to bottom, red , blue) } /* 浏览器默认值 */
div { background:linear-gradient(to top, red , blue) }
/*
分别产生“从右到左”、“从左到右”、“从上到下”、“从下到上”的“红色蓝色”渐变
*/
to right bottom、to right top、to left bottom、to left top
div { background: linear-gradient(to right bottom, red , blue); }
div { background: linear-gradient(to right top, red , blue); }
div { background: linear-gradient(to left bottom, red , blue); }
div { background: linear-gradient(to left top, red , blue); }
/* 分别产生到“右下角”、“右上角”、“左下角”、“左上角”的渐变 */
示例3:使用角度渐变
div { background: linear-gradient(10deg, red, blue) }
/* 角度是指水平线和渐变线之间的角度,逆时针方向计算。换句话说,0deg 将创建一个从下到上的渐变,90deg 将创建一个从左到右的渐变。 */
1.2径向渐变
说明:径向渐变不同于线性渐变,线性渐变是从“一个方向”向“另一个方向”的颜色渐变,而径向渐变是从“一个点”向四周的颜色渐变
语法:
background: radial-gradient(center, shape, size, start-color, ..., last-color);
/* 说明
center:渐变起点的位置,可以为百分比,默认是图形的正中心。
shape:渐变的形状,
ellipse表示椭圆形,
circle表示圆形。默认为ellipse,如果元素 形状为正方形的元素,则ellipse和circle显示 一样。
size:渐变的大小,即渐变到哪里停止,它有四个值。
closest-side``:最近边;
farthest-side:最远边;
closest-corner:最近角;
farthest-corner:最远角
*/
1.2.1多颜色点均匀分布
div { background: radial-gradient(red, green, blue); }
/* 以中心(50% 50%)为起点,到最远角(farthest-corner),从 red 到 green、blue的均匀渐变 */
1.2.2 多颜色节点不均匀分布
div { background: radial-gradient(red 5%, green 15%, blue 60%); }
1.2.3 设置渐变形状
div { background: radial-gradient(circle, red, yellow, green); }
div { background: radial-gradient(ellipse, red, yellow, green); }
/* circle:渐变为最大的圆形; ellipse:根据元素形状渐变,元素为正方形是显示效果与circle无异。 */
1.2.4不同尺寸渐变
div { background:-webkit- radial-gradient(60% 40%, closest-side, blue, green, yellow, black); }
div { background: radial-gradient(60% 40%, farthest-side, blue, green, yellow, black); }
div { background: radial-gradient(60% 40%, closest-corner, blue, green, yellow, black); }
div { background: radial-gradient(60% 40%, farthest-corner, blue, green, yellow, black); }
/* ize指定了渐变的大小,即渐变到哪里停止,它有四个值。 closest-side:最近边; farthest-side:最远边; closest-corner:最近角; farthest-corner:最远角 */
1.3 重复渐变
1.3.1 重复性线性渐变
div { background: repeating-linear-gradient(red, yellow 10%, green 20%); }
/* 说明:10%的位置为yellow,20%的位置为green,然后按照这20%向下重复 */
1.3.2重复性径向渐变
div { background: repeating-radial-gradient(red, yellow 10%, green 20%); }
2.CSS3
过渡(transition
)
css3的 transition 允许css的属性值在一定的时间区间内平滑地过渡。这种效果可以在鼠标单击、获得焦点、被点击或对元素任何改变中触发,并圆滑地以动画效果改变CSS的属性值
transition-property:检索或设置对象中的参与过渡的属性 transition-duration:检索或设置对象过渡的持续时间 transition-delay:检索或设置对象延迟过渡的时间 transition-timing-function:检索或设置对象中过渡的动画类型
简写:
transition:all(全部或所有)/具体属性值 运动时间s/ms 延迟时间s/ms 动画类型
transition-timing-function:检索或设置对象中过渡的动画类型
linear:匀速 ease:逐渐变慢 ease-in:加速 ease-out:减速 ease-in-out:先加速后减速
3. CSS3 2D
转换
说明:transform
该属性允许我们对元素进行旋转、缩放、移动。
3.1 translate
位移
/* 将元素向指定的方向移动,
第一个参数:水平方向 第二个参数:垂直方向 */
transform: translate(100px, 0px);
3.2 scale
缩放
/* 让元素根据中心原点对对象进行缩放。默认的值1。因此0.01到0.99之间的任何值,使一个元素缩小;而任何大于或等于1.01的值,让元素显得更大。 */
/* 第一个参数:水平方向 第二个参数:垂直方向 注意点: 如果取值是1, 代表不变 如果取值大于1, 代表需要放大 如果取值小于1, 代表需要缩小 */
transform: scale(0.5, 0.5);
/* 果水平和垂直缩放都一样, 那么可以简写为一个参数 */
transform: scale(1.5);
3.3 rotate
旋转
注意:
- `2D`的转换模块会修改元素的坐标系, 所以旋转之后再平移就不是水平平移的
- -如果需要进行多个转换, 那么用空格隔开
说明:如果这个值为正值,元素相对原点中心顺时针旋转;如果这个值为负值,元素相对原点中心逆时针旋转。
rotateX()
方法,元素围绕其 X 轴以给定的度数进行旋转 rotateY()
方法,元素围绕其 Y 轴以给定的度数进行旋转 rotateZ()
方法,元素围绕其 Z轴以给定的度数进行旋转,默认就是Z轴旋转。
3.4transform-origin
原点
transform-origin是变形原点,也就是该元素围绕着那个点变形或旋转,该属性只有在设置了transform属性的时候起作用; 第一个参数:水平方向
第二个参数:垂直方向
注意点 取值有三种形式:
- 具体像素
transform-origin: 200px 0px;
- 百分比
transform-origin: 50% 50%;
- 特殊关键字
transform-origin: center center;
transform-origin: left top;