一、什么是less?

一种 动态 样式 语言.

LESS 将 CSS 赋予了动态语言的特性,如 变量, 继承,运算, 函数.

LESS 既可以在 客户端 上运行 (支持IE 6+, Webkit, Firefox),也可一在服务端运行 (借助Node.js).

二、什么是颜色梯度?

本人没有文化,正确地说 线性梯度(-webkit-)linear-gradient 是gradient属性的一个分支。

————————————————————————

css3 :linear-gradient 加油站:

http://dev.opera.com/articles/view/css3-linear-gradients/(opera)

https://ie.microsoft.com/testdrive/graphics/cssgradientbackgroundmaker/default.html(ms)

https://developer.mozilla.org/en/CSS/linear-gradient(moz)

http://www.webkit.org/blog/1424/css3-gradients/(webkit)

生成工具:http://westciv.com/tools/gradients/


三、less与 css gradient 相关的function:color function

Color 函数

LESS 提供了一系列的颜色运算函数. 颜色会先被转化成 HSL 色彩空间, 然后在通道级别操作:

lighten(@color, 10%); // return a color which is 10% _lighter_ than @color(减淡)

darken(@color, 10%); // return a color which is 10% _darker_ than @color(加深)

saturate(@color, 10%); // return a color 10% _more_ saturated than @color(+饱和度)

desaturate(@color, 10%); // return a color 10% _less_ saturated than @color(-饱和度)

fadein(@color, 10%); // return a color 10% _less_ transparent than @color(-透明度)

fadeout(@color, 10%); // return a color 10% _more_ transparent than @color(+透明度)

spin(@color, 10); // return a color with a 10 degree larger in hue than @color(……)

spin(@color, -10); // return a color with a 10 degree smaller hue than @color()
Less

http://verekia.com/less-css/dont-read-less-css-tutorial-highly-addictive/attachment/less-css-8

四、预览效果:

preview

五、源代码:

.buttonbase(@bcolor:#ffffff,@border-radius:3px,@color:#FFFFFF){
//background: @bcolor;
background: -webkit-linear-gradient(@bcolor, darken(@bcolor,5%) 44%, darken(@bcolor,20%)) repeat scroll 0 0 transparent;
background: -moz-linear-gradient(@bcolor, darken(@bcolor,5%) 44%, darken(@bcolor,20%)) repeat scroll 0 0 transparent;
background: -ms-linear-gradient(@bcolor, darken(@bcolor,5%) 44%, darken(@bcolor,20%)) repeat scroll 0 0 transparent;
background: -o-linear-gradient(@bcolor, darken(@bcolor,5%) 44%, darken(@bcolor,20%)) repeat scroll 0 0 transparent;
border-color: darken(@bcolor,22%) darken(@bcolor,30%) darken(@bcolor,18%);
border-radius: @border-radius;
border-style: solid;
border-width: 1px;
box-shadow: 0 1px 0 0 lighten(@bcolor,10%) inset, 0 1px 2px rgba(0, 0, 0, 0.2);
color:@color;
font-family: arial,helvetica,sans-serif;
font-size: 14px;
font-weight: bold;
line-height: 1;
padding: 6px 16px 7px;
text-align: center;
text-decoration: none;
text-shadow: 0 -1px 0 #4865E4;
&:hover{
background: -webkit-linear-gradient(lighten(@bcolor,1%), darken(@bcolor,4.5%) 44%, darken(@bcolor,21%)) repeat scroll 0 0 transparent;
background: -moz-linear-gradient(lighten(@bcolor,1%), darken(@bcolor,4.5%) 44%, darken(@bcolor,21%)) repeat scroll 0 0 transparent;
background: -o-linear-gradient(lighten(@bcolor,1%), darken(@bcolor,4.5%) 44%, darken(@bcolor,21%)) repeat scroll 0 0 transparent;
background: -ms-linear-gradient(lighten(@bcolor,1%), darken(@bcolor,4.5%) 44%, darken(@bcolor,21%)) repeat scroll 0 0 transparent;
border: 1px solid darken(@bcolor,21%);
box-shadow: 0 1px 0 0 lighten(@bcolor,10%) inset, 0 1px 2px rgba(0, 0, 0, 0.3); &:active{
background: -webkit-linear-gradient(@bcolor, darken(@bcolor,4.8%) 44%, darken(@bcolor,20.5%)) repeat scroll 0 0 transparent;
background: -moz-linear-gradient(@bcolor, darken(@bcolor,4.8%) 44%, darken(@bcolor,20.5%)) repeat scroll 0 0 transparent;
background: -ms-linear-gradient(@bcolor, darken(@bcolor,4.8%) 44%, darken(@bcolor,20.5%)) repeat scroll 0 0 transparent;
background: -o-linear-gradient(@bcolor, darken(@bcolor,4.8%) 44%, darken(@bcolor,20.5%)) repeat scroll 0 0 transparent;
border-color: darken(@bcolor,23%) darken(@bcolor,28%) darken(@bcolor,19%);
border-left: 1px solid darken(@bcolor,25%);
border-right: 1px solid darken(@bcolor,25%);
border-style: solid;
border-width: 1px;
box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.1) inset;
}
}
} #green{
.buttonbase(#83C260,3px,#FFFFFF);
} #yellow {
.buttonbase(#ffc40d,3px,#FFFFFF);
} #blue {
.buttonbase(#049cdb,3px,#FFFFFF);
} #red {
.buttonbase(#9d261d,3px,#FFFFFF);
} #orange{
.buttonbase(#f89406,3px,#FFFFFF);
} #purple{
.buttonbase(#7a43b6,3px,#FFFFFF);
}
Less

代码阅读版:http://jsfiddle.net/Jf6Dg/

更加面向对象的版本(分离不需要重载的代码):http://jsfiddle.net/Jf6Dg/2/

在线生成试一试:
http://less.cnodejs.net/

六、 关于less的语法:

查看这里吧 http://www.lesscss.net/#docs

非原创,转自 https://blog.w3cub.com/blog/2012/02/28/less-and-linear-gradient/

关于lesscss和颜色梯度(linear-gradient )的一些问题的更多相关文章

  1. 图像处理------颜色梯度变化 (Color Gradient)

    有过UI设计经验的一定对2D图形渲染中的Color Gradient 或多或少有些接触,很多编程 语言也提供了Gradient的接口,但是想知道它是怎么实现的嘛? 本文介绍三种简单的颜色梯度变化算法, ...

  2. 机器学习(1)之梯度下降(gradient descent)

    机器学习(1)之梯度下降(gradient descent) 题记:最近零碎的时间都在学习Andrew Ng的machine learning,因此就有了这些笔记. 梯度下降是线性回归的一种(Line ...

  3. 梯度下降(Gradient Descent)小结 -2017.7.20

    在求解算法的模型函数时,常用到梯度下降(Gradient Descent)和最小二乘法,下面讨论梯度下降的线性模型(linear model). 1.问题引入 给定一组训练集合(training se ...

  4. 理解梯度下降法(Gradient Decent)

    1. 什么是梯度下降法?   梯度下降法(Gradient Decent)是一种常用的最优化方法,是求解无约束问题最古老也是最常用的方法之一.也被称之为最速下降法.梯度下降法在机器学习中十分常见,多用 ...

  5. 强化学习(十三) 策略梯度(Policy Gradient)

    在前面讲到的DQN系列强化学习算法中,我们主要对价值函数进行了近似表示,基于价值来学习.这种Value Based强化学习方法在很多领域都得到比较好的应用,但是Value Based强化学习方法也有很 ...

  6. 梯度下降(gradient descent)算法简介

    梯度下降法是一个最优化算法,通常也称为最速下降法.最速下降法是求解无约束优化问题最简单和最古老的方法之一,虽然现在已经不具有实用性,但是许多有效算法都是以它为基础进行改进和修正而得到的.最速下降法是用 ...

  7. R语言colorRampPalette函数-创建颜色梯度(渐变色)

    在绘热图时,需要将数值映射到不同的颜色上,这时就需要一系列的颜色梯度 colorRampPalette 函数支持自定义的创建一系列的颜色梯度 代码示例: > colors <- color ...

  8. [机器学习] ML重要概念:梯度(Gradient)与梯度下降法(Gradient Descent)

    引言 机器学习栏目记录我在学习Machine Learning过程的一些心得笔记,涵盖线性回归.逻辑回归.Softmax回归.神经网络和SVM等等,主要学习资料来自网上的免费课程和一些经典书籍,免费课 ...

  9. FCC---Create a Gradual CSS Linear Gradient

    Applied Visual Design: Create a Gradual CSS Linear Gradient background: linear-gradient(gradient_dir ...

  10. [论文阅读] 颜色迁移-Linear Monge-Kantorovitch(MKL)

    [论文阅读] 颜色迁移-Linear Monge-Kantorovitch(MKL) 文章: The Linear Monge-Kantorovitch Linear Colour Mapping f ...

随机推荐

  1. js右键生成菜单

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. SQL 查找是否”存在”,别再用 COUNT 了,真的很费时间!

    根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢?无论是刚入道的程序员新星,还是精湛沙场多年的程序员老手,都是一如既往的c ...

  3. Ribbon负载均衡调用

    pring cloud Ribbon 是基于Netfilix Ribbon 实现一套 客户端 负载均衡工具. 简单的说, Ribbon 是 Netflix 发布开源项目. 主要是提供客户端软件负载均衡 ...

  4. Blender2.8 使用笔记

    基本 视口 小键盘/: 隔离 Z:切换线框与实体显示 Ctrl+Alt+Q : 多视图切换 Shift+C:回原点 Shift+鼠标中键 视口平移 Ctrl+上下移动 视口放大缩小 导出FBX 几何数 ...

  5. from pathlib import Path

    from pathlib import Path #引入库 P.parent #获取父级目录 P.exists() #判断当前路径是否存在 P.mkdir(parents=Fasle) # 根据路径创 ...

  6. Java构造器详解

    java 构造器详解 一个构造器即使什么都不写 ,他也会默认存在一个构造器. 构造器的作用; ①:使用new关键字.本质是在调用构造器 ②:用来初始化值 定义了一个有参构造之后,如果想使用无参构造,显 ...

  7. JS篇(010)-JavaScript 继承的方式和优缺点

    答案:六种方式 一.原型链继承 缺点: 引用类型的属性被所有实例共享 在创建 Child 的实例时,不能向 Parent 传参 二.借用构造函数(经典继承) 优点: 避免了引用类型的属性被所有实例共享 ...

  8. flutter-android

    多端开发框架 含义:通过一套代码编译成在 H5/微信小程序/React Native/百度小程序/支付宝小程序等端运行的代码. 技术简介:Taro,uniapp Taro是一个开放式跨端跨框架解决方案 ...

  9. 启动anaconda的报错:There is an instance of anaconda navigator already running error

    首先调出控制台(win+r,输入cmd),然后在控制台输入 tasklist | findstr "pythonw" 在显示出pythonw.exe后,找到其后面的pid(数字), ...

  10. Kubernetes--案例:使用Ingress发布tomcat

    假设有这样一套环境: Kubernetes集群上的tomcat-deploy控制器生成了两个运行于Pod资源中的tomcat实例,tomcat-svc是将它们统一暴露于集群中的访问入口.现在需要通过I ...