`
zzc1684
  • 浏览: 1190249 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

LESS CSS非常实用的10个实例应用

阅读更多

 

LESS, Sass 和其他 CSS 预处理器是一种超棒的方法用来扩展 CSS 功能,使之更适合程序员。

你可以使用变量、函数、混合、继承等多种编程常用方法来编写 CSS,以更少的代码完成更多的样式。

学习这些工具最好的方法是通过各种实例快速入门,今天我们向你介绍 10 个非常有用的使用 Less CSS 的实例。

圆角

screenshot

CSS3 一个非常基本的新属性可以快速的生产圆角效果,如上图所示。

要使用 CSS3 的圆角效果我们必须针对不同的浏览器定义各自的前缀,

而如果使用了 LESS 就可以不用那么麻烦。

1. 简单的圆角半径

我的第一个 LESS 代码是我最简单的 LESS 代码之一,我需要设置圆角的半径,

而且我希望使用一个变量来调整这个半径大小。

下面代码使用 mixin 技术,通过定义 .border-radius 并接收一个 radius 参数,

该参数默认值是 5px,你可以在多个地方重复使用该 mixin 方法:

/* Mixin */
.border-radius (@radius: 5px) {
	-webkit-border-radius: @radius;
	-moz-border-radius: @radius;
	border-radius: @radius;
}
 
/* Implementation */
#somediv {
	.border-radius(20px);
}

 

将这个 less 编译成 css 后的结果是:

/* Compiled CSS */
#somediv {
  -webkit-border-radius: 20px;
  -moz-border-radius: 20px;
  border-radius: 20px;
}

 

2. 四角的半径定制

如果你希望用户可自由定制四个角的半径,那么我们需要对上面代码做下改进。

使用4个变量分别代表四个边角的半径大小:

/* Mixin */
.border-radius-custom (@topleft: 5px, @topright: 5px, @bottomleft: 5px, @bottomright: 5px) {
	-webkit-border-radius: @topleft @topright @bottomright @bottomleft;
	-moz-border-radius: @topleft @topright @bottomright @bottomleft;
	border-radius: @topleft @topright @bottomright @bottomleft;
}
 
/* Implementation */
#somediv {
	.border-radius-custom(20px, 20px, 0px, 0px);
}

编译后的 CSS

/* Compiled CSS */
#somediv {
  -webkit-border-radius: 20px 20px 0px 0px;
  -moz-border-radius: 20px 20px 0px 0px;
  border-radius: 20px 20px 0px 0px;
}

 

3. 方块阴影 Box Shadow

screenshot

另外一个 CSS3 经常用到的属性是 box-shadow,该属性也有不同浏览器的前缀要求,而使用 LESS 的话可以这样:

/* Mixin */
.box-shadow (@x: 0px, @y: 3px, @blur: 5px, @alpha: 0.5) {
	-webkit-box-shadow: @x @y @blur rgba(0, 0, 0, @alpha);
	-moz-box-shadow: @x @y @blur rgba(0, 0, 0, @alpha);
	box-shadow: @x @y @blur rgba(0, 0, 0, @alpha);
}
 
/* Implementation */
#somediv {
	.box-shadow(5px, 5px, 6px, 0.3);
}

生成的 CSS:

/* Compiled CSS */
#somediv {
  -webkit-box-shadow: 5px 5px 6px rgba(0, 0, 0, 0.3);
  -moz-box-shadow: 5px 5px 6px rgba(0, 0, 0, 0.3);
  box-shadow: 5px 5px 6px rgba(0, 0, 0, 0.3);
}
 

4. 元素过渡效果 Transition

screenshot

CSS3 的过渡使用起来更加麻烦,你必须最大化的支持各种浏览器,因此你需要定义 5 个前缀:

/* Mixin */
.transition (@prop: all, @time: 1s, @ease: linear) {
	-webkit-transition: @prop @time @ease;
	-moz-transition: @prop @time @ease;
	-o-transition: @prop @time @ease;
	-ms-transition: @prop @time @ease;
	transition: @prop @time @ease;
}
 
/* Implementation */
#somediv {
	.transition(all, 0.5s, ease-in);
} 
 
#somediv:hover {
	opacity: 0;
}

 

转换后的 CSS 代码:

/* Compiled CSS*/
#somediv {
  -webkit-transition: all 0.5s ease-in;
  -moz-transition: all 0.5s ease-in;
  -o-transition: all 0.5s ease-in;
  -ms-transition: all 0.5s ease-in;
  transition: all 0.5s ease-in;
}
 
#somediv:hover {
  opacity: 0;
}

 

5. 转换/旋转 Transform

screenshot

你可以使用 CSS3 来对元素进行角度旋转、缩放和倾斜等效果:

/* Mixin */
.transform (@rotate: 90deg, @scale: 1, @skew: 1deg, @translate: 10px) {
	-webkit-transform: rotate(@rotate) scale(@scale) skew(@skew) translate(@translate);
	-moz-transform: rotate(@rotate) scale(@scale) skew(@skew) translate(@translate);
	-o-transform: rotate(@rotate) scale(@scale) skew(@skew) translate(@translate);
	-ms-transform: rotate(@rotate) scale(@scale) skew(@skew) translate(@translate);
	transform: rotate(@rotate) scale(@scale) skew(@skew) translate(@translate);
}
 
/* Implementation */
#someDiv {
	.transform(5deg, 0.5, 1deg, 0px);
}

生成的 CSS:

/* Compiled CSS*/
#someDiv {
  -webkit-transform: rotate(5deg) scale(0.5) skew(1deg) translate(0px);
  -moz-transform: rotate(5deg) scale(0.5) skew(1deg) translate(0px);
  -o-transform: rotate(5deg) scale(0.5) skew(1deg) translate(0px);
  -ms-transform: rotate(5deg) scale(0.5) skew(1deg) translate(0px);
  transform: rotate(5deg) scale(0.5) skew(1deg) translate(0px);
}

 

颜色渐变 Gradients

screenshot

渐变是 CSS3 最复杂的属性之一,有上百万中不同的设置组合,但我们常用的无非几种。

6. 线性渐变 Linear Gradient

我们还是从最简单的开始,实现两个不同颜色之间的渐变,你可以定义开始颜色和最终颜色,

这里我们使用最新的渐变语法,浏览器的支持情况请看这里。

/* Mixin */
.gradient (@origin: left, @start: #ffffff, @stop: #000000) {
	background-color: @start;
	background-image: -webkit-linear-gradient(@origin, @start, @stop);
	background-image: -moz-linear-gradient(@origin, @start, @stop);
	background-image: -o-linear-gradient(@origin, @start, @stop);
	background-image: -ms-linear-gradient(@origin, @start, @stop);
	background-image: linear-gradient(@origin, @start, @stop);
}
 
/* Implementation */
#someDiv {
	.gradient(left, #663333, #333333);
}

生成的 CSS

/* Compiled CSS */
#someDiv {
  background-color: #663333;
  background-image: -webkit-linear-gradient(left, #663333, #333333);
  background-image: -moz-linear-gradient(left, #663333, #333333);
  background-image: -o-linear-gradient(left, #663333, #333333);
  background-image: -ms-linear-gradient(left, #663333, #333333);
  background-image: linear-gradient(left, #663333, #333333);
}

 

7. 快速渐变 Quick Gradient

创建渐变最讨厌的事情之一就是找出你的颜色。有时你只是想快速在现有颜色上做一些渐变效果。

这里我们使用从透明开始到全黑的渐变效果,你需要设置的就是最初颜色已经透明度 alpha 值:

/* Mixin */
.quick-gradient (@origin: left, @alpha: 0.2) {
	background-image: -webkit-linear-gradient(@origin, rgba(0,0,0,0.0), rgba(0,0,0,@alpha));
	background-image: -moz-linear-gradient(@origin, rgba(0,0,0,0.0), rgba(0,0,0,@alpha));
	background-image: -o-linear-gradient(@origin, rgba(0,0,0,0.0), rgba(0,0,0,@alpha));
	background-image: -ms-linear-gradient(@origin, rgba(0,0,0,0.0), rgba(0,0,0,@alpha));
	background-image: linear-gradient(@origin, rgba(0,0,0,0.0), rgba(0,0,0,@alpha));
}
 
/* Implementation */
#somediv {
	background-color: BADA55;
	.quick-gradient(top, 0.2);
}

生成的 CSS:

/* Compiled CSS */
#somediv {
  background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2));
  background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2));
  background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2));
  background-image: -ms-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2));
  background-image: linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2));
}

 

8. 镜像效果 Webkit Reflection

screenshot

CSS3 中的镜像效果在浏览器都是普遍支持的。你需要做的就是设置长度和不透明度这两个参数,很简单:

/* Mixin */
.reflect (@length: 50%, @opacity: 0.2){
	-webkit-box-reflect: below 0px 
        -webkit-gradient(linear, left top, left bottom, from(transparent), 
        color-stop(@length, transparent), to(rgba(255,255,255,@opacity)));
}
 
/* Implementation */
#somediv {
	.reflect(20%, 0.2);
}

生成的 CSS:

/* Compiled CSS */
 
#somediv {
  -webkit-box-reflect: below 0px 
  -webkit-gradient(linear, left top, left bottom, from(transparent), 
  color-stop(20%, transparent), to(rgba(255, 255, 255, 0.2)));
}

 

颜色计算 Color Math

LESS 和 Sass 最独特的功能就是颜色计算函数,你可以轻松使用 LESS 来创建各种调色板,

下面是两个简单的例子。

9. 互补色方案 Complementary Color Scheme

screenshot

这里我们使用一个基本色,然后通过彩色旋转以及加亮和变暗方法扩展到5个不同色板。

为了生成互补色,我们使用 spin 将颜色旋转 180 度:

/* Mixin */
@base: #663333;
@complement1: spin(@base, 180);
@complement2: darken(spin(@base, 180), 5%);
@lighten1: lighten(@base, 15%);
@lighten2: lighten(@base, 30%);
 
/* Implementation */
.one   {color: @base;}
.two   {color: @complement1;}
.three {color: @complement2;}
.four  {color: @lighten1;}
.five  {color: @lighten2;}

生成的 CSS:

/* Compiled CSS */
.one   {color: #663333;}
.two   {color: #336666;}
.three {color: #2b5555;}
.four  {color: #994d4d;}
.five  {color: #bb7777;}

 

10. 颜色微调 Subtle Color Scheme

screenshot

互补色很有用,但在网页设计中另外一个更有用的就是颜色微调:

/* Mixin */
@base: #663333;
@lighter1: lighten(spin(@base, 5), 10%);
@lighter2: lighten(spin(@base, 10), 20%);
@darker1: darken(spin(@base, -5), 10%);
@darker2: darken(spin(@base, -10), 20%);
 
/* Implementation */
.one   {color: @base;}
.two   {color: @lighter1;}
.three {color: @lighter2;}
.four  {color: @darker1;}
.five  {color: @darker2;}

生成的 CSS:

/* Compiled CSS */
.one   {color: #663333;}
.two   {color: #884a44;}
.three {color: #aa6355;}
.four  {color: #442225;}
.five  {color: #442225;}

 

结论

到这里我们这篇文章就结束了,主要的目的是讲述使用 LESS 处理一些常用的 CSS3 处理效果。

分享到:
评论

相关推荐

    CSS高效开发实战——CSS 3、LESS、SASS、Bootstrap、Foundation

    《CSS高效开发实战——CSS 3、LESS、SASS、Bootstrap、Foundation》内容精练、重点突出、实例丰富、讲解通俗,是广大CSS设计人员和前端开发人员必备的参考书,同时也非常适合大中专院校师生学习阅读,也可作为高等...

    详解Angular-cli生成组件修改css成less或sass的实例

    详解Angular-cli生成组件修改css成less或sass的实例 使用cli命令生成组件: ng generate component 组件名 生成出来的组件文件有:html / ts / css / spec.ts 问题我是一个less重度患者怎么可能再去写css呢。 于是...

    lesscss-compiler:用于 Java 的独立 LESS CSS 编译器

    在您的 Java 程序中,创建一个新的LessCSSCompiler实例,然后调用任何compile()方法将您的 LESS 输入转换为 CSS 输出,例如: LessCSSCompiler compiler = new LessCSSCompiler (); // String input/o

    jquery50个实例下载

     jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。  jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来...

    vscode-cssvar:VSCode扩展以支持CSS变量Intellisense

    CSSVar(VSCode扩展) 另一个CSSVar扩展。 此扩展有助于自动完成全局共享CSS变量。 仅扩展files配置中提供的... cssvar.files : ["index.css"] cssvar.extensions : ["css", "scss", "sass", "less"]快照:工作实例

    CSS学习笔记之常用Mixin封装实例代码

    但是CSS预处理器都是相通的,你可以很轻易的修改成Sass、Stylus 代码免不了错误和Bug,如果你能帮我修改或者补充 万分感谢!! 参考了一些开源库,如:est、csslab等 Usage /** * 作品:mixin.less * 更新:2017年...

    jquery 资料合集 实例

    如安全(Security)、日志(Logging)、数据访问(Data Access)、配置管理(Configuration Manage)等,并将这些广泛使用的应用程序块集成封装至一个叫企业库的程序包中。 通过这些程序块,可以解决共性的企业级开发过程中...

    bootstrap 简洁灵活的流行前端框架及交互组件集 web界面

    尽管只有10kb(gzip压缩后),Bootstrap却仍是最完备的前端工具箱之一,提供了几十个全功能的随时可用的组件。 定制的jQuery插件 一个出色的组件设计岂能没有易用易扩展的人机界面?Bootstrap为此提供了定制的...

    在angular 6中使用 less 的实例代码

    修改 *.css 文件及引用处后缀名为 less并在 angular.json 文件中设置以下内容 { "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "version": 1, "newProjectRoot": "projects", "projects":...

    基于Golang开发的RedisFox可视化监控工具开源代码

    - Less样式文件:37个 - Go源代码文件:15个 - 图片资源:4个PNG文件 - Git忽略配置:3个 - Markdown文档:3个 - CSS样式文件:3个 - Shell脚本:2个 - YAML配置文件:2个 - HTML模板文件:2个 项目特点: - 基于...

    lessphp:用PHP编写的LESS编译器

    lessphp的典型流程是创建一个lessc的新实例, lessc自己的喜好进行配置,然后告诉它使用内置的compile方法进行编译。 compile方法将LESS代码的字符串编译为CSS。 <?phprequire "lessc.inc.php" ;$ less = new ...

    四大维度解锁Webpack3.0前端工程化

    由一个个的实例组成,介绍webpack 在处理各种实例的下的配置,实例包括 Typescript Ecmascript Less 语言的预编译,讲解了 Webpack 提取公共代码、代码分割、动态import、魔法注释、JS 和 CSS 的 TreeShaking等新...

    Editr.js::pencil:HTML,CSS和JavaScript游乐场

    它非常容易设置,并且在一页上支持多个实例。 可通过JS对象或HTML属性进行配置。 您可以查看演示并阅读有关功能的更多信息。EditrWP-Wordpress插件您也可以购买Editr.js作为Wordpress插件文件结构.|---. editr| |--...

    nervjs-ie8:改写nervjs(React)兼容ie8的多页面框架

    nervjs-ie8 nervjs + react(可最新)+ cmui + html5 + css3 + less + es6 + webpack + axios + eslint +兼容IE8适合开发各种企业网站,后台管理系统,seo站点等等多页面应用cmui仓库为例如,亲信地铁(vueapp)腾讯...

    python实现sublime3的less编译插件示例

    再将编译好的less,保存为同名后缀为css的文件中.第一次使用python,代码也是拼拼凑凑的.需要加上线程进行异步请求,但是不会… 复制代码 代码如下:import sublime, sublime_pluginimport urllibimport json class ...

    yii使用bootstrap分页样式的实例

    Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。 本文为...

    jsgu.github.io:y26.net实例

    core babel-loader babel-preset-es2015 clean-webpack-plugin css-loader extract-text-webpack-plugin file-loader html-webpack-plugin less-loader style-loader url-loader webpack webpack-dev-server ...

Global site tag (gtag.js) - Google Analytics