zoukankan      html  css  js  c++  java
  • less简介

    Less是一种动态的样式语言。Less扩展了CSS的动态行为,比如说,设置变量(Variables)、混合书写模式(mixins)、操作(operations)和功能(functions)等等,最棒的是,Less使用了现有的CSS语法,也就是说,你可以直接把你现成的样式文件“style.css”直接改成“style.less”,他也能正常工作。

    编译less

    1.使用js

    <link rel="stylesheet/less" type="text/css" href="css/style.less" >
    <script type="text/javascript" src="js/less-1.3.3.min.js"  data-env="development" ></script >//网上可下载
    2.Koala编译工具
    koala是一个前端预处理器语言图形编译工具,支持Less、Sass、Compass、CoffeeScript,帮助web开发者更高效地使用它们进行开发。跨平台运行
    官网地址http://koala-app.com/index-zh.html
    3.使用第三方工具gulp grunt等
    less语法

    变量
    //less
    @color:#333;
    header{
        color:@color;
    }
    /*css*/
    header{
        color:#333333;
    }

     混合--在 LESS 中我们可以定义一些通用的属性集为一个class,然后在另一个class中去调用这些属性

    //less
    .bd50{
      border-radius: 50%;
    }
    .yuan{
    100px;
    height:100px;
    background:red;
    .bd50
    }
    /*css*/
    .yuan{
    100px;
    height:100px;
    background:red;
    border-radius: 50%;
    }
    //html代码
    <div class="yuan"></div>
     效果

    带参数混合--像函数一样定义一个带参数的属性集合,然后在另一个class中去调用这些属性。

    //less
    /*classA:设置圆角角度为50px*/
    .radius(@radius: 50px) {
        border-radius: @radius;
        -webkit-border-radius: @radius;
        -moz-border-radius: @radius;
    }
    /*classB:设置阴影颜色大小*/
    .boxShadow(@boxShadowColor:0 0 10px rgba(0, 204, 204, .5)){
        -webkit-box-shadow:@boxShadowColor;
        -moz-box-shadow:@boxShadowColor;
        box-shadow:@boxShadowColor;
    }
    /*classC:调用A、B*/
    .tableBorder{
        border : 5px solid 5px solid #ffff00;
        background: #ffc0cb;
         200px;
        height: 200px;
        padding: 0;
        margin:0;
        text-align: center;
        line-height: 200px;
        .boxShadow;
    /*在classC中调用classA、B  带值带括号  括号内给值,执行括号内的数据*/
        .radius();
    }
    /*css*/
    .tableBorder {
      border: 5px solid #ffff00;
      background: #ffc0cb;
       200px;
      height: 200px;
      padding: 0px;
      margin: 0px;
      text-align: center;
      line-height: 200px;
      -webkit-box-shadow: 0 0 10px rgba(0, 204, 204, 0.5);
      -moz-box-shadow: 0 0 10px rgba(0, 204, 204, 0.5);
      box-shadow: 0 0 10px rgba(0, 204, 204, 0.5);
      border-radius: 50px;
      -webkit-border-radius: 50px;
      -moz-border-radius: 50px;
    }
     //html代码
    <div class="tableBorder">我是一个带参数混合的正方形</div>
          

    效果

     @arguments变量--@arguments包含了所有传递进来的参数. 如果你不想单独处理每一个参数的话就可以像这样写:

    //less
    .arguments{
         @width200;
        height: @width200;
        margin: 30px;
        .box-Shadow();
    }
    .box-Shadow(@x:0,@y:0,@blur:1px,@color: rgba(215, 22, 185, .5)){
    //包含传进来的所有参数
        box-shadow: @arguments;
        -moz-box-shadow: @arguments;
        -webkit-box-shadow: @arguments;
    }
    /*css*/
    .arguments {
       200px;
      height: 200px;
      margin: 30px;
      box-shadow: 0 0 1px rgba(215, 22, 185, 0.5);
      -moz-box-shadow: 0 0 1px rgba(215, 22, 185, 0.5);
      -webkit-box-shadow: 0 0 1px rgba(215, 22, 185, 0.5);
    }
    //html代码
    <div class="arguments">arguments变量</div>

    嵌套--可以在一个选择器中嵌套另一个选择器来实现继承,这样很大程度减少了代码量,并且代码看起来更加的清晰。

    //less
    
     .list{
         100%;
        padding: 0;
        margin: 30px auto;
        list-style: none;
        li{
            height: 30px;
            line-height: 30px;
            margin-bottom: 5px;
            background: pink;
            padding: 0 10px;
    //这样写也可以 但是要进行更深层次的匹配 影响效率
            /*a{
                color: #666;
                text-decoration: none;
                padding-left: 20px;
            }*/
        }
        a{
            color: #666;
            text-decoration: none;
    //&:代表他的上一层选择器
            &:hover{
                color: #3a87ad;;
                text-decoration: underline;
            }
        }
    
        span{
            float: right;
        }
    }
    /*css*/
    .list {
       100%;
      padding: 0;
      margin: 30px auto;
      list-style: none;
    }
    .list li {
      height: 30px;
      line-height: 30px;
      margin-bottom: 5px;
      background: pink;
      padding: 0 10px;
    }
    .list a {
      color: #5bc0de;
      text-decoration: none;
    }
    .list a:hover {
      color: #3a87ad;;
      text-decoration: underline;
    }
    .list span {
      float: right;
    }
    //html代码
          <div class="qiantao">
            <ul class="list">
                <li><a href="#">这是一个测试嵌套的代码</a><span>2012-04-02</span></li>
                <li><a href="#">这是二个测试嵌套的代码</a><span>2012-04-02</span></li>
                <li><a href="#">这是三个测试嵌套的代码</a><span>2012-04-02</span></li>
            </ul>
          </div>

    匹配模式--有些情况下,我们想根据传入的参数来改变混合的默认呈现,比如下面这个例子:

    //less
    //朝上
    //宽度默认5,颜色默认灰色
    .triangle(top,@w:100px,@c:#ccc){
        border- @w;
        border-color: transparent transparent @c transparent;
        border-style: dashed dashed solid dashed;
    }
    //朝下
    .triangle(bottom,@w:100px,@c:#ccc){
        border- @w;
        border-color:@c transparent transparent  transparent;
        border-style:solid dashed dashed  dashed;
    }
    //朝左
    .triangle(left,@w:100px,@c:#ccc){
        border- @w;
        border-color: transparent @c transparent  transparent ;
        border-style: dashed solid dashed dashed ;
    }
    //朝右
    .triangle(right,@w:100px,@c:#ccc){
        border- @w;
        border-color: transparent  transparent  transparent @c ;
        border-style: dashed  dashed dashed  solid;
    }
    //特殊匹配模式 不管匹配谁都会执行@_的内容
    .triangle(@_,@w:100px,@c:#ccc){
         0px;
        height: 0px;
        overflow: hidden;
    }
    .sanjiao{
        .triangle(left);
    }
    /*css*/
    //由于调用的“left”,所以只会编译left的样式
    .sanjiao {
      border- 100px;
      border-color: transparent #cccccc transparent transparent;
      border-style: dashed solid dashed dashed ;
       0px;
      height: 0px;
      overflow: hidden;
    }
     //html代码
    <div class="sanjiao"></div>
          

  • 相关阅读:
    并行计算上机代码
    BZOJ 5170: Fable
    ANTLR4 实验总结
    ANTLR4将BF翻译成CPP
    BF语言学习
    ANTLR4将JSON翻译成XML
    ANTLR4加载csv数据
    语法分析树监听器和访问器
    数据库数据类型总结
    java介绍
  • 原文地址:https://www.cnblogs.com/jyichen/p/5395524.html
Copyright © 2011-2022 走看看