LESS CSS 实例

值得参考的 10 个 LESS CSS 实例  css

screenshot

LESS, Sass 和其余 CSS 预处理器是一种超棒的方法用来扩展 CSS 功能,使之更适合程序员。你能够使用变量、函数、混合、继承等多种编程经常使用方法来编写 CSS,以更少的代码完成更多的样式。css3

学习这些工具最好的方法是经过各类实例快速入门,今天咱们向你介绍 10 个很是有用的使用 Less CSS 的实例。git

使用 LESS

若是你还没接触过 LESS CSS ,能够阅读下面两篇文章:程序员

我该如何使用这些实例

我建议是你直接能够把本文中的代码复制粘贴到你的 .less 文件。github

可让你这些文件独立于你的项目,经过 “@import “starter.less” 来引入。web

你还能够使用相似 Less.appCodeKit 这样的工具来将 LESS 编译成 CSS 。ajax

若是我使用的是 Sass

screenshot

若是你更喜欢的是 Sass 而不是 LESS,没问题,这两个工具都很棒,它们的语法有一点不一样,请看上图。二者更详细的比较请看这里编程

好了,不废话了,咱们开始本文的主题!浏览器

圆角

screenshot

CSS3 一个很是基本的新属性能够快速的生产圆角效果,如上图所示。要使用 CSS3 的圆角效果咱们必须针对不一样的浏览器定义各自的前缀,而若是使用了 LESS 就能够不用那么麻烦。app

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 处理效果。

相关文章
相关标签/搜索