• Css预处理器---Less(二)


    三、Less语法

      (1)变量

     1 //less代码
     2 @nice-blue : #5B83AD;
     3 @light-blue : @nice-blue + #111;
     4 #header {
     5   color : @light-blue;   
     6 }
     7 
     8 //css输出
     9 #header {
    10    color : #6c94be;
    11 }
    12 
    13 //将变量名定义为变量
    14 @fnord : "I am fnord";
    15 @var : 'fnord';
    16 content : @@var
    17 //css输出
    18 content : "I am fnord"; 

      (2)混合

        :定义的样式.bordered可以在其他样式内调用

     1 //less代码
     2 .bordered {
     3     border-top: 1px dotted black;
     4     border-bottom: 2px solid black;
     5 }
     6 #menu a {
     7     color: #111;
     8     .bordered;
     9 }
    10 
    11 //css输出
    12 .bordered {
    13   border-top: 1px dotted black;
    14   border-bottom: 2px solid black;
    15 }
    16 #menu a {
    17   color: #111;
    18   border-top: 1px dotted black;
    19   border-bottom: 2px solid black;
    20 }

      (3)带参数混合

        :以下代码中在.border-radius样式传入参数@radius定义border-radius属性,在#myDiv样式中调用该样式

     1 //less代码
     2 .border-radius(@radius) {
     3     border-radius: @radius;
     4     -webkit-moz-border-radius: @radius;
     5     -moz-moz-border-radius: @radius;
     6 }
     7 #myDiv {
     8     .border-radius(4px)
     9 }
    10 .button {
    11     .border-radius(6px)
    12 }
    13 
    14 //css输出
    15 #myDiv {
    16   border-radius: 4px;
    17   -webkit-moz-border-radius: 4px;
    18   -moz-moz-border-radius: 4px;
    19 }
    20 .button {
    21   border-radius: 6px;
    22   -webkit-moz-border-radius: 6px;
    23   -moz-moz-border-radius: 6px;
    24 }

      :在参数中设定默认值@radius:5px

     1 //less代码
     2 .border-radius(@radius : 5px) {
     3     border-radius: @radius;
     4 }
     5 #header {
     6     .border-radius;
     7 }
     8 //css输出
     9 #header {
    10   border-radius: 5px;
    11 }

      :@arguments变量表示多个参数

     1 //less代码
     2 .box-shadow(@x:0, @y:0, @blur:1px, @color:#000) {
     3     -webkit-box-shadow: @arguments;
     4     -moz-webkit-box-shadow: @arguments;
     5     box-shadow: @arguments;
     6 }
     7 
     8 #header {
     9     .border-radius;
    10     .box-shadow(2px, 5px)
    11 }
    12 
    13 //css输出
    14 #header {
    15   -webkit-box-shadow: 2px 5px 1px #000000;
    16   -moz-webkit-box-shadow: 2px 5px 1px #000000;
    17   box-shadow: 2px 5px 1px #000000;
    18 }

       (4)混合模式

     1 //less代码
     2 @test-width : 300px;
     3 .box{
     4     width: @test-width;
     5     height: @test-width;
     6     background-color: yellow;
     7     .border;
     8 }
     9 .border {
    10     border: 5px solid pink;
    11 }
    12 
    13 //css输出
    14 .box {
    15   width: 300px;
    16   height: 300px;
    17   background-color: yellow;
    18   border: 5px solid pink;
    19 }
    20 .border {
    21   border: 5px solid pink;
    22 }
     1 //混合模式带参数
     2 .border(@test-width) {
     3     border: 2px 3px 4px @test-width;
     4 }
     5 .box {
     6     margin: 10px;
     7     .border(10px)
     8 }
     9 
    10 //css输出
    11 .box {
    12   margin: 10px;
    13   border: 2px 3px 4px 10px;
    14 }

       (5)匹配模式:指定样式.triangle传入参数,所得结果嵌套到pox样式中

     1 //匹配模式less代码
     2 .triangle(top,@w:5px,@c:#ccc) {
     3     border-width: @w;
     4     border-color: transparent transparent @c transparent;
     5     border-style: dashed dashed solid dashed;
     6 }
     7 .triangle(bottom,@w:5px,@c:#ccc) {
     8     border-width: @w;
     9     border-color: @c transparent transparent transparent;
    10     border-style: solid dashed dashed dashed;
    11 }
    12 .triangle(left,@w:5px,@c:#ccc) {
    13     border-width: @w;
    14     border-color: transparent @c transparent transparent;
    15     border-style: dashed solid dashed dashed;
    16 }
    17 .triangle(right,@w:5px,@c:#ccc) {
    18     border-width: @w;
    19     border-color: transparent transparent transparent @c;
    20     border-style: dashed dashed dashed solid;
    21 }
    22 // @_表示引用的样式必须包含该样式
    23 .triangle(@_,@w:5px,@c:#ccc){
    24     width: 0px;
    25     height: 0px;
    26     overflow: hidden;
    27 }
    28 .pox1{
    29     .triangle(top,50px,blue)
    30 }
    31 .pox2{
    32     .triangle(right,50px,red)
    33 }
    34 .pox3{
    35     .triangle(bottom,50px,yellow)
    36 }
    37 .pox4{
    38     .triangle(left,50px,green)
    39 }
    40 
    41 //css输出
    42 .pox1 {
    43   border-width: 50px;
    44   border-color: transparent transparent #0000ff transparent;
    45   border-style: dashed dashed solid dashed;
    46   width: 0px;
    47   height: 0px;
    48   overflow: hidden;
    49 }
    50 .pox2 {
    51   border-width: 50px;
    52   border-color: transparent transparent transparent #ff0000;
    53   border-style: dashed dashed dashed solid;
    54   width: 0px;
    55   height: 0px;
    56   overflow: hidden;
    57 }
    58 .pox3 {
    59   border-width: 50px;
    60   border-color: #ffff00 transparent transparent transparent;
    61   border-style: solid dashed dashed dashed;
    62   width: 0px;
    63   height: 0px;
    64   overflow: hidden;
    65 }
    66 .pox4 {
    67   border-width: 50px;
    68   border-color: transparent #008000 transparent transparent;
    69   border-style: dashed solid dashed dashed;
    70   width: 0px;
    71   height: 0px;
    72   overflow: hidden;
    73 }

      (6)嵌套

      :父级元素内可以直接嵌套子级元素,&后面一般跟伪类选择器如(:hover,:focus)等

     1 //less代码
     2 #header {
     3     width: 100px;
     4     h3 {
     5         color: #ccc;
     6         a {
     7             font-size: 20px;
     8             &:hover {
     9                 text-decoration: none;
    10             }
    11         }        
    12 
    13     }
    14 }
    15 
    16 //css输出
    17 #header {
    18   width: 100px;
    19 }
    20 #header h3 {
    21   color: #ccc;
    22 }
    23 #header h3 a {
    24   font-size: 20px;
    25 }
    26 #header h3 a:hover {
    27   text-decoration: none;
    28 }

      (7)运算

      :同类属性之间可以使用+-*/进行数学运算

     1 //less代码
     2 @base : 5%;
     3 @filter : @base * 2;
     4 @other : @base + @filter;
     5 @base-color : #ccc;
     6 .test {
     7     color: #888 / 4;
     8     background-color: @base-color + #111;
     9     height: 100% / 2 + @filter;
    10 }
    11 
    12 //css输出
    13 .test {
    14   color: #222222;
    15   background-color: #dddddd;
    16   height: 60%;
    17 }
  • 相关阅读:
    Akka(2):Actor生命周期管理
    Akka(1):Actor
    Akka(0):聊聊对Akka的初步了解和想法
    FunDA:一个开源的函数式数据处理工具库,也是Slick的补充
    FunDA(17)- 示范:异常处理与事后处理
    FunDA(16)- 示范:整合并行运算
    FunDA(15)- 示范:任务并行运算
    FunDA(14)- 示范:并行运算,并行数据库读取
    FunDA(13)- 示范:用户自定义操作函数
    thinkjs中自定义sql语句
  • 原文地址:https://www.cnblogs.com/hughes5135/p/7102160.html
Copyright © 2020-2023  润新知