前端:Less编写css样式

提要:
1. 什么是css预处理器?
2. 如何使用Less?
3. Less的特点
4. Less的优缺点

一 什么是css预处理

css 预处理是一种语言为css增加了一些编程的特征,并且无需考虑浏览器的兼容性,你可以在你的css样式中使用变量,简单的逻辑处理,甚至函数。
我的理解这个处理器就是把你的写的这些less,sass,stylus也好,统统转换成浏览器能识别的css样式。
目前比较普通的是这三款预处理架构、分别是
Sass(http://sass-lang.com/)
Less css(http://lesscss.org/
stylus(http://stylus-lang.com
Sass文件使用.sass拓展名,Less使用.less拓展名,相应的Stylus使用.styl拓展名。

二 如何使用Less

node环境下运行:npm install less
客户端使用Less的话,直接在项目中引入less.js文件即可。但要在.less 文件前引入。

三 Less 特点

a.使用变量

例如一些通用的颜色值,图片路径等,
使用变量的两个好处:多出利用和方便维护,只需要改变量值就行了。
less中变量名使用@符号开始,在Sass中则是使用$开头,在Stylus中无限制。

@mainColor: #333;
@width: 1024px;
span {
width: @width;
border: 1px solid @mainColor;
}

编译结果:

span {
 width:1024px;
border: 1px solid #333;
}

b. 使用嵌套语法

.TopBar {
       padding: 14px 0;
       border-bottom: 1px solid #eee; 
        line-height: 28px;
         

        .ddColor {
                color :#fff;
                a {
                    text-decoration:none;
                   &:hover {
                    border-width: 1px;
                    }
                  }
                }
              }

编译结果:

.TopBar {
      padding:14px 0;
      border-bottom: 1px solid #eee;
      line-height: 28px;
}

.TopBar  .ddColor {
     color:#fff;
 }
.TopBar .ddColor a {
  text-decoration: none;
}
.TopBar .ddColor a:hover {
  border-width: 1px;
}

这里之后的样式嵌套在.TopBar下,可以省略嵌套前的标签属性类等。

c. 运算符

css都能加减乘除了

@color: #111;
div {
background:@color+#222;

编译结果:

div {
 background: #333;
}

d.处理浏览器兼容

这个是我认为最实用的一个功能,避免了做重复的事情。
例如解决浏览器兼容问题,使用border-radius需要加上浏览器前缀,麻烦而且代码冗余。

.border-radius(@values){
  -webkit-border-radius: @values;
     -moz-border-radius: @values;
          border-radius: @values;
}
div {
     @border-raduis(10px);
}

编译结果:

div {
  -webkit-border-radius: 10px;
     -moz-border-radius: 10px;
          border-radius: 10px;
}
.transition(@transition) {
  -webkit-transition: @transition;
  -moz-transition: @transition;
  -o-transition: @transition;
   transition: @transition;
}
a{@transition(all 0.4s);}

编译结果:

a {
  -webkit-transition: all 0.4s;
  -moz-transition: all 0.4s;
  -o-transition: all 0.4s;
   transition: all 0.4s;
}

e:Mixins(混入)

有点类似与js定义的全局变量,到处都能直接调用。
例如:定义了一个错误提示,字体变大变红。

.error(@fontsize:20px){
    font-size:@fontsize;
    color:red;
}

其他地方直接调用@error(10px);即可。

f:less的导入

less中可以导入css文件也可以导入less文件。导入css文件会保持原样,less文件会被编译。并且less的导入不要求放在顶部。

@import"untils";
@import"bootstrap-theme";

这里并没有指定less后缀文件,导入时会默认为less文件,等同于

@import"untils.less";
@import"bootstrap-theme.less";


例如:
span {
 @import"bootstrap-theme";
}

那么这里导入的样式将作用于span标签。
甚至还可以针对媒体查询的结果来指定导入less文件
例如

@import"untils.less"screen and (max-width:400px);
编译结果:
@media screen and(max-width:400px){
untils.css样式........
}

g. less 中使用注释

单行注释使用// 或者css的注释符号,多行注释使用

//Hi, I'm a slient comment.

.class {color:white}
.class{color: white}

大概总结了一下Less的优缺点:

优点:
a. css的语法不够强大,需要重复书写很多重复的选择器.less刚好解决了这一问题。
b. 提供变量和逻辑控制
c. 合理的样式复用机制  减少代码的冗余
d. 提高代码的可维护性
e. mixin混入

缺点:
a. 也需花费一定时间去了解学习使用这个预处理,团队协作的难度加大
b. 个人感觉是css本来就是很简单的东西,less中的有些处理反而让它变得更复杂。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容