LESS CSS使用方法 , CSS也能跟JS一样玩

在使用CSS的时候,总会有这个想法

  • 这个属性值老是重复写好烦
  • 这个属性值我在前面那个CSS文件中写过,好想直接拿过来用
  • CSS能不能像其他程序性语言一样用一个变量来代替需要重复利用的内容呢


  • 鉴于以上的想法并非我一人会想到,只要是做过前端的肯定都会思考过这个问题,无奈CSS基本可以说没有语法可依循,于是有了LESS框架

    什么是CSS?

    作为一门标记性语言,CSS 的语法相对简单,对使用者的要求较低,但同时也带来一些问题:CSS 需要书写大量看似没有逻辑的代码,不方便维护及扩展,不利于复用,尤其对于非前端开发工程师来讲,往往会因为缺少 CSS 编写经验而很难写出组织良好且易于维护的 CSS 代码,造成这些困难的很大原因源于 CSS 是一门非程序式语言,没有变量、函数、SCOPE(作用域)等概念


    什么是LESS ?

    它在 CSS 的语法基础之上,引入了变量,Mixin(混入),运算以及函数等功能,大大简化了 CSS 的编写,并且降低了 CSS 的维护成本,就像它的名称所说的那样,LESS 可以让我们用更少的代码做更多的事情。


    LESS的原理

    本质上,LESS 包含一套自定义的语法及一个解析器,用户根据这些语法定义自己的样式规则,这些规则最终会通过解析器,编译生成对应的 CSS 文件。LESS 并没有裁剪 CSS 原有的特性,更不是用来取代 CSS 的,而是在现有 CSS 语法的基础上,为 CSS 加入程序式语言的特性。

    环境配置

  • 以webStorm为例,在开始使用LESS之前你必须要安装以下环境
  • node.js
  • node.js命令行输入“npm install -g less”安装less;
  • 打开webstorm,File→Settings→Tools→File Watchers,点击右侧绿色“+”号


  • 当然还有一种办法使用LESS就是直接使用HBuilder编辑器,自带LESS插件


    开始使用

    本例以HBuilder编写,在我们写LESS文件的时候会自动帮我们生成CSS文件

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
        </head>
        <link href="css/index.css" rel="stylesheet" />
        <body>
            <div class="index-home">
                <span>This is index</span>
            </div>
        </body>
    </html>
    

    我们的CSS文件会自动生成,不用做任何修改,我们只需要修改我们的LESS文件即可

    上LESS!!!!

    @index-color:red;
    .index-home{
        box-sizing: content-box;
        background-color: @index-color;
    }

    写完之后我们去看一下index.css生成的代码

    是的背景色变成了红色,我们看一下运行效果

    是的,就是这么好使,如果你以为本文结束了,那就错了,这只能满足当前页面引用当前LESS文件中的变量,如何引用其他变量呢?

    LESS文件中是可以引用其他LESS文件的,玩过Java的都知道,引用一个类会用到什么关键字,没错,import,大家准备上车!!!!

    现在我想在index.less文件中去引用一个基类LESS文件,该如何书写呢

  • 首先写base-less.less

  •     @base-font-color:white; 

    在base-less文件中写一个base-font-color:white来控制文本颜色为白色

    在index.less中引用,如下

    很简单明了,引用结束我们看一下效果是怎么样的


    看到这里,有人会问,能不能直接引用LESS文件啊?当然可以啊

    我们可以直接在客户端使用 .less(LESS 源文件),只需要从 http://lesscss.org下载 less.js 文件,然后在我们需要引入 LESS 源文件的 HTML 中加入如下代码:

    LESS 源文件的引入方式与标准 CSS 文件引入方式一样:

    <link rel="stylesheet/less" type="text/css" href="index.less">
    
    <link rel="stylesheet/less" type="text/css" href="index.less">

    其实LESS是有自己的生命周期的,哦,不好意思,是作用域…

    简单的讲就是局部变量还是全局变量的概念,查找变量的顺序是先在局部定义中找,如果找不到,则查找上级定义,直至全局。

    简单明了,代码示例:

     @width : 20px;
     .index{
       @width : 30px;
       .centerDiv{
           width : @width;// 此处应该取最近定义的变量 width 的值 30px
                  }
     }
     .leftDiv {
         width : @width; // 此处应该取最上面定义的变量 width 的值 20px
     }

    终于到最后了,最后也是LESS最厉害的作用之一了,你可以把LESS当成JS来玩

    @import "base-less.less";
    @index-color: red;
    .index-home {
        box-sizing: content-box;
        background-color: @index-color;
        color: @base-font-color;
        .marginTop(100px);
    }
    .marginTop(@distance) {
        margin-top: @distance;
    }

    可以直接调用”函数”来完成一些属性的赋值,看下效果如何

    看到这里,基本介绍就结束了,LESS确实很方便,另外如果你是一名Android开发者,这个人你一定的关注一下,他的博客都是干货———-他就是NoHttp的作者:严振杰博客地址

    时间: 2024-10-21 06:56:24

    LESS CSS使用方法 , CSS也能跟JS一样玩的相关文章

    HTML中引入CSS的方法

    在HTML中引入CSS的方法主要有四种,它们分别是行内式.内嵌式.链接式和导入式. 1.行内式 行内式是在标记的style属性中设定CSS样式.这种方式没有体现出CSS的优势,不推荐使用. 2.内嵌式 嵌入式是将CSS样式集中写在网页的<head></head>标签对的<style></style>标签对中.格式如下: <head> <style type="text/css"> ...此处写CSS样式 </

    豆瓣移动端风格的css命名方法与学习

    在CSS取名相对于刚入门来说是最头疼的事情,往往取一个可读性的名字相对以后的代码风格还是很重要的. 在配合团队方面一个好的类名可以帮助同事来理解,增加团队之间的效率有着很大的意义. 豆瓣的前段相对其他网站来说还是比较文艺清爽的,所以很值得去向他们团队学习,学习的地方很多,先来取名把. 在最外面的一个<div class="ck-root">.....</div>首先内容先用一个大的div盒子包起来, <div class="ck-root&quo

    快速记住CSS样式属性单词及输入HTML+CSS的方法

    快速记住CSS样式属性单词及输入HTML+CSS的方法,DIVCSS5介绍一种快速输入HTML代码.快速输入CSS样式英文单词与样式值输入方法.降低英文单词代码输入错误概率,提升输入代码速度.DW软件输入CSS和HTML的终极用法(非面板输入法). DIVCSS5教大家一种快速记住CSS样式属性单词及用法的方法,告别死记硬背才是硬道理. CSS样式布局中使用的CSS样式英文单词,不需要死记硬背,会使用认识,知道长什么样即可.在DIV CSS布局开发中对于是否会拼写CSS属性单词关系不大,会使用.

    用纯css的方法实现popout内容

    在没有引用jquery和其他插件的时候,可以通过纯css的方法实现popout框,效果类似tooltip.这种方法虽然很拙劣,但是未尝也是一种解决办法.我们都知道a标签有几个伪类可以使用,这里要特别注意的是a:link,a:visited,a:hover,a:active这四个伪类的顺序,若不按这样的顺序可能会导致无法实现预期的效果.一般我们只用a:hover这个伪类来实现悬停的效果,而巧妙地利用这个伪类,我们可以实现类似tooltip的效果.但这有一些缺陷,就是popout的内容必须在a标签内

    css 调试方法总结

    本总结不断更新,主要记录本人调试过程中所终结的经验与方法. 毕竟本人不是做浏览器前端的,所以如有不详敬请见谅. css关系到界面的美观,有时候功能实现了.界面确丑到没人用,终归还是一件失败的产品,所有好的产品不仅需要实用的功能,更加需要贴心美观的外观. 1.如果遇到整体布局工整,个别布局偏移的. 可以使用浏览器取道偏移的组件(放大镜),然后得到应用到这个组件的css文件中的css效果进行修改即可,如下图所示: 可以再右边获取到css样式,以及css详细信息: 查看到样式后,还可以看到对应样式所属

    Safari的CSS HACK方法

    以前的文章里提到过IE6/IE7/IE8/IE9/.Firefox的CSS HACK方法,那么Safari的CSS HACK是什么呢? 请看以下CSS代码: .box { color: black;                              /* ff */ color: #fff\9\0;                            /* IE9 */ color: #ff0000\0;                       /* IE8 */ [color: 

    CSS Reset方法

    CSS Reset 即重设浏览器的样式.在各种浏览器中,都会对CSS的选择器默认一些数值,譬如当h1没有被设置数值时,显示一定大小. 但并不是所有的浏览器都使用一样的数值,所以,有了CSS Reset,以让网页的样式在各浏览器中表现一致. 正在使用CSS的你,用过CSS Reset吗?当然,或许你用了,却不知道正在用,比如你可能用到: * { padding: 0; margin: 0; border: 0; } 这也是一种CSS Reset的方法,让所有的选择器的padding.margin和

    CSS_添加CSS文件方法,盒模型和定位

    学习笔记整理,非原创. 添加css的方法 链接外部样式表 <link rel=stylesheet type=text/css href=style.css> Rel表示在页面中使用外部的样式表.type指文件的类型是样式表文件,href指文件的位置. 内部样式表 <style type=”text/css”> <!— //定义style --> </style> 导入外部 样式表 <style type=”text/css”> <!— @

    iframe 跨域自适应 纯css解决方法

    <style type="text/css">body{background:#f00;}body, html,#ifm1{width:100%;height:100%;overflow:hidden;margin:0;}#ifm1{width:100%;height:100%;overflow:hidden;margin:0;}</style><iframe id="ifm1" src='http://www.csdn.net' fr