zoukankan      html  css  js  c++  java
  • less 的使用方法总结

    一、 安装和使用 LESS
    
      1.1 安装
    
      使用命令行安装 LESS 
    
    npm install -g less
      1.2 使用
    
      less 有多种的使用方法,在这里我向大家介绍最常用的俩种方法。
    
      第一种是直接在浏览器中使用:
    
    去下载一个你要的 less.js  脚本;
    创建一个文件来放置你的样式,比如说style.less
    添加下面的代码到你的 HTML 的 <head> 中。 
    <link rel="stylesheet/less" type="text/css" href="styles.less">
    
    <script src="less.js" type="text/javascript"></script>
      请注意“link”的“rel”属性。你需要在属性值后面使用“/less”,LESS才起作用。你也需要在“link”样式表后面引入"script"。如果你正在使用“HTML5”语法,我无法想像为什么你不会用呢?你可以少去“type=‘text/css’”和“type='text/javascript'”。
    
       第二种就是在命令行中使用: 
    
    lessc style.less style.css 
       然后会在项目目录生成 style.css 文件,在 html 中引入即可。如果在编译过程中出现错误,将会在命令行中提示你。
    
      Less 是用 JavaScript 写的,所以需要额外的 Node.js 或者网页浏览器才能够运行它。你可以在你的网站中引入 less.js ,这样在真正的运行环境下它就可以自动编译,但这个过程非常缓慢,所以不建议这么使用。 推荐的方式是提前编译成 CSS 代码并且将一个正常的发展版本备份在线上。当然还有很多可视化的的程序帮助你编译 less 文件,但是在本篇文章中我们将使用 node.js。
    二、基本用法
    
       2.1 变量
    
      Less 的一个主要功能就是可以让你像在其它高级语言中一样声明变量,这样你就可以存储你经常使用的任何类型的值 : 颜色,尺寸,选择器,字体名称和 URL 等。less 的哲学是在可能的情况下重用CSS语法。
    
      这里,我们声明了两个变量,一个是背景颜色,一个是文本颜色,它们都是十六进制的值。less 代码如下:
    
    @background-color: #ffffff;
    @text-color: #1A237E;
    
    .box{
         500px;
        height: 500px;
        background-color: @background-color;
    }
    p{
        color: @text-color;
    }
    
       编译后的 css 代码如下: 
    
    .box {
       500px;
      height: 500px;
      background-color: #ffffff;
    }
    p {
      color: #1A237E;
    }
    
       在上面的例子当中,背景颜色是白色,文本颜色是黑色。比方说,现在我们要切换二者的值,也就是黑色的背景和白色的文本,我们只需要修改两个变量的值就可以了,而不是手动的去修改每个值。
    
       阅读更多有关 Less 变量的内容,请看这里。
    
      2.2 Mixins
    
      Less 允许我们将已有的 class 和 id 的样式应用到另一个不同的选择器上。 下面这个例子可以清楚地说明这一点。 
    
    
    #circle{
      background-color: #4CAF50;
      border-radius: 100%;
    }
    
    #small-circle{
       50px;
      height: 50px;
      #circle
    }
    
    #big-circle{
       100px;
      height: 100px;
      #circle
    }
    
       转换成 css 代码如下: 
    
    #circle {
        background-color: #4CAF50;
        border-radius: 100%;
    }
    #small-circle {
         50px;
        height: 50px;
        background-color: #4CAF50;
        border-radius: 100%;
    }
    #big-circle {
         100px;
        height: 100px;
        background-color: #4CAF50;
        border-radius: 100%;
    }
    
       如果你不想 mixin 也以一种规则的形式出现在 CSS 代码中,那么你可以在它的后面加上括号:
    
    #circle(){
        background-color: #4CAF50;
        border-radius: 100%;
    }
    
    #small-circle{
         50px;
        height: 50px;
        #circle
    }
    
    #big-circle{
         100px;
        height: 100px;
        #circle
    }
       此时编译成 CSS : 
    
    #small-circle {
         50px;
        height: 50px;
        background-color: #4CAF50;
        border-radius: 100%;
    }
    #big-circle {
         100px;
        height: 100px;
        background-color: #4CAF50;
        border-radius: 100%;
    }
    
      Mixin 另一个比较酷的功能就是它支持传入参数,下面这个例子就为 circle 传入一个指定宽高的参数,默认是 25px。 这将创建一个 25×25的小圆和一个 100×100 的大圆。
    
    #circle(@size: 25px){
        background-color: #4CAF50;
        border-radius: 100%;
    
         @size;
        height: @size;
    }
    
    #small-circle{
        #circle
    }
    
    #big-circle{
        #circle(100px)
    }
    
      转换成 CSS :
    
    #small-circle {
        background-color: #4CAF50;
        border-radius: 100%;
         25px;
        height: 25px;
    }
    #big-circle {
        background-color: #4CAF50;
        border-radius: 100%;
         100px;
        height: 100px;
    }
    
      在 官方文档 了解更多关于 mixin 的知识。
    
      2.3 嵌套
    
      嵌套可用于以与页面的HTML结构相匹配的方式构造样式表,同时减少了冲突的机会。下面是一个无序列表的例子。
    
    ul{
        background-color: #03A9F4;
        padding: 10px;
        list-style: none;
    
        li{
            background-color: #fff;
            border-radius: 3px;
            margin: 10px 0;
        }
    }
    
      编译成 CSS 代码:
    
    ul {
        background-color: #03A9F4;
        padding: 10px;
        list-style: none;
    }
    ul li {
        background-color: #fff;
        border-radius: 3px;
        margin: 10px 0;
    }  
      就像在其它高级语言中一样, Less 的变量根据范围接受它们的值。如果在指定范围内没有关于变量值的声明, less 会一直往上查找,直至找到离它最近的声明。
      回到 CSS 中来,我们的 li 标签将有白色的文本,如果我们在 ul 标签中声明 @text-color 规则。
    
    @text-color: #000000;
    
    ul{
        @text-color: #fff;
        background-color: #03A9F4;
        padding: 10px;
        list-style: none;
    
        li{
            color: @text-color;
            border-radius: 3px;
            margin: 10px 0;
        }
    }
      编译生成的 CSS 代码如下:
    ul {
        background-color: #03A9F4;
        padding: 10px;
        list-style: none;
    }
    ul li {
        color: #ffffff;
        border-radius: 3px;
        margin: 10px 0;
    }
    
      在 这里 了解更多关于作用域的知识。
      2.4 运算
    
      你可以对数值和颜色进行基本的数学运算。比如说我们想要两个紧邻的 div 标签,第二个标签是第一个标签的两倍宽并且拥有不同的背景色。
    
    @div- 100px;
    @color: #03A9F4;
    
    div{
        height: 50px;
        display: inline-block;
    }
    
    #left{
         @div-width;
        background-color: @color - 100;
    }
    
    #right{
         @div-width * 2;
        background-color: @color;
    }
      编译成 CSS 如下:
    
    div {
        height: 50px;
        display: inline-block;
    }
    #left {
         100px;
        background-color: #004590;
    }
    #right {
         200px;
        background-color: #03a9f4;
    }
    
      2.5 函数 
    
      Less 中有函数,这让它看起来像一门编程语言了,不是吗?
    
      让我们来看一下 fadeout, 一个降低颜色透明度的函数。 
    
    @var: #004590;
    
    div{
      height: 50px;
       50px;
      background-color: @var;
    
      &:hover{
        background-color: fadeout(@var, 50%)
      }
    }
      编译成 CSS 如下所示:
    div {
        height: 50px;
         50px;
        background-color: #004590;
    }
    div:hover {
        background-color: rgba(0, 69, 144, 0.5);
    }
      通过上述代码,当我们将鼠标悬浮在 div 上时,就可以获取半透明度的动画效果,这比之前自己手动设置要简单的多了。还有很多有用的函数去操纵颜色,检测图像的大小,甚至将资源作为 data-uri 嵌入样式表,在 这里 查看这些函数的列表。
    
      2.6 作用域(scope)
    
      作用域是程序中的一个标准,LESS中也是。如果你在你样式表的root级声明一个变量,它在整个文档中都是可以调用的。然而,如果你在一个选择器,比如id或者class中,重新定义了这个变量,那么,它就只能在这个选择器中可用了——当然是重新定义后的新值。
    
    @color: #00c; /* 蓝色 */
    
    #header {
      @color: #c00; /* 红色 */
       border: 1px solid @color; /* 红色边框 */
    }
    
    #footer {
      border: 1px solid @color; /*蓝色边框 */
    }
    

      

  • 相关阅读:
    css3 Gradient背景
    ArrayList源码解析(一)
    css3 @font-face
    ArrayList源码解析(二)自动扩容机制与add操作
    ArrayList源码解析(三)
    JavaScript基础
    JavaScript中的字符串方法总结
    一个完整的HTTP请求过程
    HTML5学习
    JS编程
  • 原文地址:https://www.cnblogs.com/tiangeng/p/11406556.html
Copyright © 2011-2022 走看看