您的位置:首页 > Web前端 > CSS

CSS3+less实验(1)——gradient

2015-06-02 10:07 639 查看
从今天起,将陆续进行CSS3新特性的详细实验,由于要兼容各个浏览器(一想到这就觉得做前端真烦啊),所以配合LESS来处理css样式。

本次实验对象——gradient

gradient是CSS3新推出的可以实现渐变的 background的值,也就是说,它本身不是一个css属性,而是background属性的一个可能的值,所以这一点要搞清楚。

线性渐变

1、语法:

background:-prefix-linear-gradient(angle,startcolor,stopcolor);


2、说明:

prefix:浏览器前缀,目前有 moz[火狐],webkit[chrome,safari],o[opara]

angle:起始角度。取值范围 0~360(deg),也可以直接使用left(90deg),top(180deg),bottom(0deg),right(270deg)来实现水平或垂直的渐变

startcolor : 渐变起始颜色

stopcolor : 渐变终止颜色


3、html:

//index.html

<!DOCTYPE html>
<html>
<head lang="en">
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
   <meta name="renderer" content="webkit">
   <title>css3动画试验之——gradient</title>
   <link rel="stylesheet" href="style.css" type="text/css"/>
</head>
<body>

   <div class="box1"></div>
   <div class="box2"></div>
   <div class="box3"></div>
   <div class="box4"></div>
   <div class="box5"></div>
   <div class="box6"></div>
   <div class="box7"></div>

</body>
</html>


4、less

关于less,如果没有接触过的,请看这里:LESS中文教程

//style.less

.gradient(@angle:top,@start:#000,@stop:#ff050e){

  background: -webkit-linear-gradient(@angle,@start,@stop);
  background: -moz-linear-gradient(@angle,@start,@stop);
  background: -o-linear-gradient(@angle,@start,@stop);
  background: linear-gradient(@angle,@start,@stop);

}

.box {
  width: 120px;
  height: 60px;
  float: left;
  margin-right: 10px;
}

.box1 {
  .box;
  .gradient();
}

.box2 {
  .box;
  .gradient(left,#000,#fff);
}

.box3 {
  .box;
  .gradient(30deg,#000,#fff);
}

.box4 {
  .box;
  .gradient(180deg,#000,#fff);
}

.box5 {
  .box;
  .gradient(0deg,#000,#fff);
}

.box6 {
  .box;
  .gradient(90deg,#000,#fff);
}

.box7 {
  .box;
  .gradient(270deg,#000,#fff);
}


5、CSS

//style.css
.box {
  width: 120px;
  height: 60px;
  float: left;
  margin-right: 10px;
}
.box1 {
  width: 120px;
  height: 60px;
  float: left;
  margin-right: 10px;
  background: -webkit-linear-gradient(top, #000000, #ff050e);
  background: -moz-linear-gradient(top, #000000, #ff050e);
  background: -o-linear-gradient(top, #000000, #ff050e);
  background: linear-gradient(top, #000000, #ff050e);
}
.box2 {
  width: 120px;
  height: 60px;
  float: left;
  margin-right: 10px;
  background: -webkit-linear-gradient(left, #000000, #ffffff);
  background: -moz-linear-gradient(left, #000000, #ffffff);
  background: -o-linear-gradient(left, #000000, #ffffff);
  background: linear-gradient(left, #000000, #ffffff);
}
.box3 {
  width: 120px;
  height: 60px;
  float: left;
  margin-right: 10px;
  background: -webkit-linear-gradient(30deg, #000000, #ffffff);
  background: -moz-linear-gradient(30deg, #000000, #ffffff);
  background: -o-linear-gradient(30deg, #000000, #ffffff);
  background: linear-gradient(30deg, #000000, #ffffff);
}
.box4 {
  width: 120px;
  height: 60px;
  float: left;
  margin-right: 10px;
  background: -webkit-linear-gradient(180deg, #000000, #ffffff);
  background: -moz-linear-gradient(180deg, #000000, #ffffff);
  background: -o-linear-gradient(180deg, #000000, #ffffff);
  background: linear-gradient(180deg, #000000, #ffffff);
}
.box5 {
  width: 120px;
  height: 60px;
  float: left;
  margin-right: 10px;
  background: -webkit-linear-gradient(0deg, #000000, #ffffff);
  background: -moz-linear-gradient(0deg, #000000, #ffffff);
  background: -o-linear-gradient(0deg, #000000, #ffffff);
  background: linear-gradient(0deg, #000000, #ffffff);
}
.box6 {
  width: 120px;
  height: 60px;
  float: left;
  margin-right: 10px;
  background: -webkit-linear-gradient(90deg, #000000, #ffffff);
  background: -moz-linear-gradient(90deg, #000000, #ffffff);
  background: -o-linear-gradient(90deg, #000000, #ffffff);
  background: linear-gradient(90deg, #000000, #ffffff);
}
.box7 {
  width: 120px;
  height: 60px;
  float: left;
  margin-right: 10px;
  background: -webkit-linear-gradient(270deg, #000000, #ffffff);
  background: -moz-linear-gradient(270deg, #000000, #ffffff);
  background: -o-linear-gradient(270deg, #000000, #ffffff);
  background: linear-gradient(270deg, #000000, #ffffff);
}


6、效果



从做至右的样式分别是box1~box7

径向渐变

1、语法

-prefix-radial-gradient([<bg-position> || <angle>,]? [<shape> || <size>,]? <color-stop>, <color-stop>[, <color-stop>]*);


2、说明

prefix:浏览器前缀,目前有 moz[火狐],webkit[chrome,safari],o[opara]

bg-position || angle :背景位置或角度,只能出现其中一种,否则元素不显示

bg-position: 可选值为百分比,或数值,或 left ,bottom,top,center,right等值
angle: 可选值为角度值,单位 deg

shape  ||  size  :形状或大小,只能出现其中一种,否则元素不显示

shape : 形状,可选值为 circle(圆) 或 ellipse(椭圆),默认为ellipse

size : 大小,可选值为像素数,如 48px;

color-stop:终止颜色,可以有多个


3、HTML

<div class="box8"></div>
  <div class="box9"></div>
  <div class="box10"></div>
  <div class="box11"></div>
  <div class="box12"></div>
  <div class="box13"></div>


4、Less

.gradient-radial(@positionOrAngle:bottom left,@shapeOrSize:circle,@color_stop1:#000000,@color_stop2:#D2F726 ,@color_stop13:#DD2222 ){
  background: -moz-radial-gradient(@positionOrAngle,@shapeOrSize, @color_stop1,@color_stop2,@color_stop13);
  background: -webkit-radial-gradient(@positionOrAngle,@shapeOrSize, @color_stop1,@color_stop2,@color_stop13);
}

.box {
  width: 120px;
  height: 60px;
  float: left;
  margin-right: 10px;
}

.box8 {
  .box;
  .gradient-radial(center,ellipse);
}

.box9 {
  .box;
  .gradient-radial(bottom left,#000000  50%,#D2F726  30%,#DD2222  80%);
}

.box10 {
  .box;
  .gradient-radial(ellipse,#000000  50%,#D2F726  30%,#DD2222  80%);
}

.box11 {
  .box;
  .gradient-radial(circle,#000000 ,#D2F726 ,#DD2222 );
}

.box12 {
  .box;
  .gradient-radial(closest-corner,#000000 ,#D2F726  ,#DD2222  );
}

.box13 {
  .box;
  .gradient-radial(16px,#000000,#D2F726 ,#DD2222 );


5、CSS

.box8 {
  width: 120px;
  height: 60px;
  float: left;
  margin-right: 10px;
  background: -moz-radial-gradient(center, ellipse, #000000, #d2f726, #dd2222);
  background: -webkit-radial-gradient(center, ellipse, #000000, #d2f726, #dd2222);
}
.box9 {
  width: 120px;
  height: 60px;
  float: left;
  margin-right: 10px;
  background: -moz-radial-gradient(bottom left, #000000 50%, #d2f726 30%, #dd2222 80%, #dd2222);
  background: -webkit-radial-gradient(bottom left, #000000 50%, #d2f726 30%, #dd2222 80%, #dd2222);
}
.box10 {
  width: 120px;
  height: 60px;
  float: left;
  margin-right: 10px;
  background: -moz-radial-gradient(ellipse, #000000 50%, #d2f726 30%, #dd2222 80%, #dd2222);
  background: -webkit-radial-gradient(ellipse, #000000 50%, #d2f726 30%, #dd2222 80%, #dd2222);
}
.box11 {
  width: 120px;
  height: 60px;
  float: left;
  margin-right: 10px;
  background: -moz-radial-gradient(circle, #000000, #d2f726, #dd2222, #dd2222);
  background: -webkit-radial-gradient(circle, #000000, #d2f726, #dd2222, #dd2222);
}
.box12 {
  width: 120px;
  height: 60px;
  float: left;
  margin-right: 10px;
  background: -moz-radial-gradient(closest-corner, #000000, #d2f726, #dd2222, #dd2222);
  background: -webkit-radial-gradient(closest-corner, #000000, #d2f726, #dd2222, #dd2222);
}
.box13 {
  width: 120px;
  height: 60px;
  float: left;
  margin-right: 10px;
  background: -moz-radial-gradient(16px, #000000, #d2f726, #dd2222, #dd2222);
  background: -webkit-radial-gradient(16px, #000000, #d2f726, #dd2222, #dd2222);


6、效果



从左至右分别为box8~box13,我只实验了几种参数组合,其他不同参数组合效果有兴趣可以自己做实验观察。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: