如何使用less及一些常用的(变量,混合,匹配,运算,嵌套...)

less的介绍及编译工具

什么是less

1.LESSCSS是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法,为CSS的赋予了动态语言的特性,如变量、继承、运算、函数等,更方便CSS的编写和维护。

LESSCSS可以在多种语言、环境中使用,包括浏览器端、桌面客户端、服务端。

less的编译工具

  1. Koala 考拉 --编译的时候如果没有建CSS文件夹 Koala会自动给你生成一个

    如何设置语言



    如何编译

    -

  2. 让webstorm支持less编译:

    • 安装node.js --- 这是一个包管理工具 以后还会用到
    • WIN+R
    • 输入 npm install less
  3. .....

less的语法

Ps:下面的知识点会用到上面的知识点 (比如说在混合中会用到变量 加深印象_)

  1. 注释

    • // 只在less中显示
    • /**/ 会在编译好的css文件中显示
  2. 变量

    • 定义变量用@

      • less中的写法
      @ly_width:100px;
      .box {
      width:@ly_width;
      }
      • 编译后在css中显示的是
      .box {
      width:100px;
      }
  3. 混合

    • 不带参数的混合

      • 先上less中的代码 如果想在.one中应用.border的样式怎么办?
      @ly_width:100px;
      @ly_height:200px;
      @ly_color:green;
      .border {
      border:1px solid red;
      }
      .one {
      width:@ly_width;
      height:@ly_height;
      background-color:@ly_color;
      }
      • 写成下面的样子
      @ly_width:100px;
      @ly_height:200px;
      @ly_color:green;
      .border {
      border:1px solid red;
      }
      .one {
      width:@ly_width;
      height:@ly_height;
      background-color:@ly_color;
      .border;
      }
      • 编译后在css中显示的是
      .border {
      border:1px solid red;
      }
      .one {
      width: 100px;
      height: 200px;
      background-color: #008000;
      border: 1px solid red;
      }
      ```
    • 带参数的混合---不带默认值 (可以传多个参数,以逗号或者分号隔开,推荐用分号 下面以一个参数为例)
      • less中的写法
      @ly_width:100px;
      @ly_height:200px;
      @ly_color:green;
      .border(@border_width) {
      border:@border_width solid red;
      }
      .one {
      width:@ly_width;
      height:@ly_height;
      background-color:@ly_color;
      .border(1px);
      }
      • 编译后在css中显示的是
      .one {
      width: 100px;
      height: 200px;
      background-color: #008000;
      border: 1px solid #ff0000;
      }
    • 带参数的混合---带默认值 (可以传多个参数 下面以一个参数为例)
      • less中的写法
      @ly_width:100px;
      @ly_height:200px;
      @ly_color:green;
      .border(@border_width:3px;) {
      border:@border_width solid red;
      }
      .one {
      width:@ly_width;
      height:@ly_height;
      background-color:@ly_color;
      .border();
      }
      • 编译后在css中显示的是
      .one {
      width: 100px;
      height: 200px;
      background-color: #008000;
      border: 3px solid #ff0000;
      }
    • 在解决css3兼容性时候经常用到
      • 解决border-radius兼容
      .border_radius (@radius: 5px) {
      -webkit-border-radius: @radius;
      -moz-border-radius: @radius;
      -ms-border-radius: @radius;
      -o-border-radius: @radius;
      border-radius: @radius;
      }
  4. 匹配模式

    • 可以理解成if 和上面的混合有些相似

      • less中的写法
      //定义上,下,左,右边框的样式
      .border(top;@border_width:5px;@border_color:red){
      border-top:@border_width solid @border_color;
      }
      .border(bottom;@border_width:5px;@border_color:red){
      border-bottom:@border_width solid @border_color;
      }
      .border(left;@border_width:5px;@border_color:red){
      border-left:@border_width solid @border_color;
      }
      .border(right;@border_width:5px;@border_color:red){
      border-right:@border_width solid @border_color;
      }
      //如果想写通用的样式 可以在下面的代码中写 格式是固定的
      .border(@_,@border_width:5px;@border_color:red){
      border-color:yellow;
      }
      .border_use1 {
      //选择和if差不多 如果是left就调用上面对应的
      .border(left);
      }
      .border_use2 {
      //选择和if差不多 如果是right就调用上面对应的
      .border(right);
      }
      • 编译后在css中显示的是
      .border_use1 {
      border-left:5px solid #ff0000;
      border-color:yellow;
      }
      .border_use2 {
      border-right:5px solid #ff0000;
      border-color:yellow;
      }
  5. 运算

    • 运算提供了加,减,乘,除操作,还可以做属性值和颜色的运算...

      • less中的写法
      @ly_width:100px;
      .one {
      width:@ly_widht + 100;
      }
      • 编译后在css中显示的是
      .one {
      width:200px;
      }
  6. 嵌套

    • 可以在一个选择器中嵌套另一个选择器,代码看起来层次分明,提高代码可维护性

      • html结构
      <div class="one">
      <div class="two"></div>
      </div>
      • less中的写法
      @ly_width:100px;
      @ly_height:200px;
      @ly_color:red;
      .one {
      width:@ly_width;
      height:@ly_height;
      background-color:@ly_color;
      .two {
      background-color: green;
      }
      }
      • 编译后在css中显示的是
      .one {
      width: 100px;
      height: 200px;
      background-color: #ff0000;
      }
      .one .two {
      background-color: green;
      }
  7. @arguments变量

    • 可以包含所有的变量,将变量一起处理

      • less中的写法
      //和前面提到的混合一起举个栗子
      .border(@border_width;@border_style;@border_color){
      border:@arguments;
      }
      .one {
      .border(1px;solid;red);
      }
      • 编译后在css中显示的是
      .one {
      border:1px solid #ff0000;
      }

如何使用less(变量,混合,匹配,运算,嵌套...)的更多相关文章

  1. 玩转变量、环境变量以及数学运算(shell)

    变量和环境变量    var=value  给变量赋值,输出语句:$ echo $var或者是$ echo ${var},记住中间有个空格 例如:name="coffee" age ...

  2. [Shell]Bash变量:数值运算及运算符

    ------------------------------------------------------------------------------------------------- Sh ...

  3. python中的变量和算数运算

    先说下变量的作用: 用来保存数据,为什么要保存? 后面要使用. 变量的概念: 变量就是用来存储一些信息,供程序以后调用或者操作修改.变量为标记数据提供了一种描述性的名字,以便我们的程序可以被程序的阅读 ...

  4. C结构体变量2种运算(比如链表的结点)(区别与java)

    a结构体变量,只能做两种运算, 整体引用(赋值,参数传递) 或访问成员(点运算—地址方式简化,地址方式)(见最后的图片) case万: 结论:java里面的class Node : Node p; p ...

  5. linux学习(八)Shell中变量的数学运算

    目录 常见的运算符 expr命令 @(Shell中变量的数学运算) 常见的运算符 环境变量 说明 + 加 - 减 * 乘 / 除 % 取模 因为Shell中将*作为通配符使用, expr命令 expr ...

  6. UTF-8和UTF-8无BOM,一个会导致文件中中文变量无法匹配的bug

    昨晚用dom4j中的selectSingleNode解析xml,匹配节点. 发现匹配不到,但是确实存在该节点 将regex改为regex1后则可以匹配,也就是说文件中的"阿里旺旺" ...

  7. saltstack之混合匹配

    需要-C参数: salt -C ## 使用grains属性来匹配 [root@hadoop0 pillar]# salt -C 'G@os:Ubuntu' test.ping uadoop1: Tru ...

  8. 【Linux】通过传入变量进行数学运算

    一个简单的sum求和 #! /bin/bash ## For get the sum of tow numbers ## Writen by Qinys ## Date:2018-06-26 a=1 ...

  9. 第二周Python笔记之 变量的三元运算

    如果变量a小于b,则d的值取a变量的值,否则取c变量的值

随机推荐

  1. Angular injector注入器

    <!DOCTYPE html><html ng-app="myApp"><head lang="en"> <meta ...

  2. ionic创建项目失败

    × Downloading and extracting blank starter - failed![ERROR] Network connectivity error occurred, are ...

  3. 自学Linux Shell3.4-文件处理命令touch cp mv rm

    点击返回 自学Linux命令行与Shell脚本之路 3.4-文件处理命令touch cp mv rm 1. touch命令 一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将 ...

  4. [CF791D]Bear and Tree Jumps

    题目描述 A tree is an undirected connected graph without cycles. The distance between two vertices is th ...

  5. UVALive - 6442 (思维题)

    题目链接:https://vjudge.net/contest/241341#problem/I 题目大意:给你一个有N个点等距的环,编号[0,N-1],然后有些点上有一个或多个硬币,通过移动这些硬币 ...

  6. 前端学习 -- Html&Css -- 表单

    表单的作用就是用来将用户信息提交给服务器的,比如:百度的搜索框 注册 登录这些操作都需要填写表单. 使用form标签创建一个表单,form标签中必须指定一个action属性,该属性指向的是一个服务器的 ...

  7. c语言可变参

    一.什么是可变参数 在C语言编程中有时会遇到一些参数个数可变的函数,例如printf(),scanf()函数,其函数原型为: int printf(const char* format,…),int ...

  8. Java:终于找到了在alloy中的JFileChooser中的弹出式菜单不显示文字的解决办法

    alloy界面可以说是我写过的最漂亮的一种JAVA界面. 可惜不知为什么,至从几年前推出1.4版后,就再也没有更新了. 随着java版本的升级,一直很担心alloy有一天不再适用于java的最新版. ...

  9. UIManager的字体颜色参数对照表

    FileChooser.fileTypeHeaderTextTextArea.margincom.sun.java.swing.plaf.windows.WindowsSplitPaneUIcom.s ...

  10. typescript变量声明(学习笔记非干货)

    var a=10; function f(){ var message="hello,world"; return message; } function f(){ a=10; r ...