关于lesscss和颜色梯度(linear-gradient )的一些问题
一、什么是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()
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);
}
代码阅读版: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 )的一些问题的更多相关文章
- 图像处理------颜色梯度变化 (Color Gradient)
有过UI设计经验的一定对2D图形渲染中的Color Gradient 或多或少有些接触,很多编程 语言也提供了Gradient的接口,但是想知道它是怎么实现的嘛? 本文介绍三种简单的颜色梯度变化算法, ...
- 机器学习(1)之梯度下降(gradient descent)
机器学习(1)之梯度下降(gradient descent) 题记:最近零碎的时间都在学习Andrew Ng的machine learning,因此就有了这些笔记. 梯度下降是线性回归的一种(Line ...
- 梯度下降(Gradient Descent)小结 -2017.7.20
在求解算法的模型函数时,常用到梯度下降(Gradient Descent)和最小二乘法,下面讨论梯度下降的线性模型(linear model). 1.问题引入 给定一组训练集合(training se ...
- 理解梯度下降法(Gradient Decent)
1. 什么是梯度下降法? 梯度下降法(Gradient Decent)是一种常用的最优化方法,是求解无约束问题最古老也是最常用的方法之一.也被称之为最速下降法.梯度下降法在机器学习中十分常见,多用 ...
- 强化学习(十三) 策略梯度(Policy Gradient)
在前面讲到的DQN系列强化学习算法中,我们主要对价值函数进行了近似表示,基于价值来学习.这种Value Based强化学习方法在很多领域都得到比较好的应用,但是Value Based强化学习方法也有很 ...
- 梯度下降(gradient descent)算法简介
梯度下降法是一个最优化算法,通常也称为最速下降法.最速下降法是求解无约束优化问题最简单和最古老的方法之一,虽然现在已经不具有实用性,但是许多有效算法都是以它为基础进行改进和修正而得到的.最速下降法是用 ...
- R语言colorRampPalette函数-创建颜色梯度(渐变色)
在绘热图时,需要将数值映射到不同的颜色上,这时就需要一系列的颜色梯度 colorRampPalette 函数支持自定义的创建一系列的颜色梯度 代码示例: > colors <- color ...
- [机器学习] ML重要概念:梯度(Gradient)与梯度下降法(Gradient Descent)
引言 机器学习栏目记录我在学习Machine Learning过程的一些心得笔记,涵盖线性回归.逻辑回归.Softmax回归.神经网络和SVM等等,主要学习资料来自网上的免费课程和一些经典书籍,免费课 ...
- FCC---Create a Gradual CSS Linear Gradient
Applied Visual Design: Create a Gradual CSS Linear Gradient background: linear-gradient(gradient_dir ...
- [论文阅读] 颜色迁移-Linear Monge-Kantorovitch(MKL)
[论文阅读] 颜色迁移-Linear Monge-Kantorovitch(MKL) 文章: The Linear Monge-Kantorovitch Linear Colour Mapping f ...
随机推荐
- js右键生成菜单
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- SQL 查找是否”存在”,别再用 COUNT 了,真的很费时间!
根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢?无论是刚入道的程序员新星,还是精湛沙场多年的程序员老手,都是一如既往的c ...
- Ribbon负载均衡调用
pring cloud Ribbon 是基于Netfilix Ribbon 实现一套 客户端 负载均衡工具. 简单的说, Ribbon 是 Netflix 发布开源项目. 主要是提供客户端软件负载均衡 ...
- Blender2.8 使用笔记
基本 视口 小键盘/: 隔离 Z:切换线框与实体显示 Ctrl+Alt+Q : 多视图切换 Shift+C:回原点 Shift+鼠标中键 视口平移 Ctrl+上下移动 视口放大缩小 导出FBX 几何数 ...
- from pathlib import Path
from pathlib import Path #引入库 P.parent #获取父级目录 P.exists() #判断当前路径是否存在 P.mkdir(parents=Fasle) # 根据路径创 ...
- Java构造器详解
java 构造器详解 一个构造器即使什么都不写 ,他也会默认存在一个构造器. 构造器的作用; ①:使用new关键字.本质是在调用构造器 ②:用来初始化值 定义了一个有参构造之后,如果想使用无参构造,显 ...
- JS篇(010)-JavaScript 继承的方式和优缺点
答案:六种方式 一.原型链继承 缺点: 引用类型的属性被所有实例共享 在创建 Child 的实例时,不能向 Parent 传参 二.借用构造函数(经典继承) 优点: 避免了引用类型的属性被所有实例共享 ...
- flutter-android
多端开发框架 含义:通过一套代码编译成在 H5/微信小程序/React Native/百度小程序/支付宝小程序等端运行的代码. 技术简介:Taro,uniapp Taro是一个开放式跨端跨框架解决方案 ...
- 启动anaconda的报错:There is an instance of anaconda navigator already running error
首先调出控制台(win+r,输入cmd),然后在控制台输入 tasklist | findstr "pythonw" 在显示出pythonw.exe后,找到其后面的pid(数字), ...
- Kubernetes--案例:使用Ingress发布tomcat
假设有这样一套环境: Kubernetes集群上的tomcat-deploy控制器生成了两个运行于Pod资源中的tomcat实例,tomcat-svc是将它们统一暴露于集群中的访问入口.现在需要通过I ...