• less笔记


    目录

    一 less基础

     二 less中的混合

    三 匹配模式

    arguments

     运算

     四 less继承

    避免编译


    一 less基础

    (1)less中的注释

    以//开头的注释,不会被编译到css文件中

    以/**/包裹的注释会被编译到css文件中

    (2)less中的变量

    使用@来申明一一个变量: @pink: pink;
    1.作为普通属性值只来使用:直接使用@pink
    2.作为选择器和属性名: @{selector的值}的形式

    1. -------------less中-----------
    2. @color:pink;
    3. @m:margin;
    4. @selector:#wrap;
    5. *{
    6. @{m}:0;
    7. }
    8. @{selector}{
    9. background:@color;
    10. }
    11. -----------等价于css中---------
    12. *{
    13. margin:0;
    14. }
    15. #wrap{
    16. background:#ffc0cb;
    17. }


    3.作为URL: @{url}


    4.变量的延迟加载

    1. ---------------------------------less中-----------
    2. @var: 0;
    3. .class {
    4. @var: 1;
    5. .brass {
    6. @var: 2;
    7. three: @var;//3
    8. @var: 3;
    9. }
    10. one: @var;
    11. }
    12. ------------------------------------等价于css中-------
    13. .class{
    14. one:1;
    15. }
    16. .class .brass{
    17. three:3;
    18. }

    (3)嵌套规则

    &的使用表示平级:

    1. ------------less中-----------
    2. #wrap{
    3. .inner{
    4. background:blue;
    5. &:hover{
    6. background:pink;
    7. }
    8. }
    9. ------------等价于css中----------
    10. #wrap .inner{
    11. background:blue;
    12. }
    13. #wrap .inner:hover{
    14. background:pink;
    15. }

     二 less中的混合

    混合就是将一系列属性从一个规则集引入到另一个规则集的方式

    (1)普通混合

    1. ==============================less中=================================
    2. .juzhong{
    3. position: absolute;
    4. left: 0;
    5. right: 0;
    6. top: 0;
    7. bottom: 0;
    8. margin:auto;
    9. background: deeppink;
    10. height: 100px;
    11. width: 100px;
    12. }
    13. #wrap{
    14. position: relative;
    15. width: 300px;
    16. height: 400px;
    17. border: 1px solid;
    18. margin: 0 auto;
    19. .inner{
    20. .juzhong;
    21. }
    22. .inner2{
    23. .juzhong;
    24. }
    25. =============================相当于CSS中=================================
    26. #wrap{
    27. position: relative;
    28. width: 300px;
    29. height: 400px;
    30. border: 1px solid;
    31. margin: 0 auto;
    32. }
    33. #wrap .inner{
    34. position: absolute;
    35. left: 0;
    36. right: 0;
    37. top: 0;
    38. bottom: 0;
    39. margin:auto;
    40. background: deeppink;
    41. height: 100px;
    42. width: 100px;
    43. }
    44. #wrap .inner2{
    45. position: absolute;
    46. left: 0;
    47. right: 0;
    48. top: 0;
    49. bottom: 0;
    50. margin:auto;
    51. background: deeppink;
    52. height: 100px;
    53. width: 100px;
    54. }

    (2)带参数并且有默认值的混合

    1. ==============================less中=================================
    2. .juzhong(@w:10px,@h:10px,@c:pink){
    3. position: absolute;
    4. left: 0;
    5. right: 0;
    6. top: 0;
    7. bottom: 0;
    8. margin:auto;
    9. background:@c;
    10. height:@h;
    11. width: @w;
    12. }
    13. #wrap{
    14. position: relative;
    15. width: 300px;
    16. height: 400px;
    17. border: 1px solid;
    18. margin: 0 auto;
    19. .inner{
    20. .juzhong(100px,100px,pink);
    21. }
    22. .inner2{
    23. .juzhong();
    24. }
    25. =============================相当于CSS中=================================
    26. #wrap{
    27. position: relative;
    28. width: 300px;
    29. height: 400px;
    30. border: 1px solid;
    31. margin: 0 auto;
    32. }
    33. #wrap .inner{
    34. position: absolute;
    35. left: 0;
    36. right: 0;
    37. top: 0;
    38. bottom: 0;
    39. margin:auto;
    40. background: #ffc0cb;
    41. height: 100px;
    42. width: 100px;
    43. }
    44. #wrap .inner2{
    45. position: absolute;
    46. left: 0;
    47. right: 0;
    48. top: 0;
    49. bottom: 0;
    50. margin:auto;
    51. background: #ffc0cb;
    52. height: 10px;
    53. width: 10px;
    54. }

    扩展:命名参数

    1. ....
    2. .inner2{
    3. .juzhong(@c:black);
    4. }
    5. ...

    三 匹配模式

    01.less文件中

    1. //第一个会.triangle自动被调用
    2. .triangle(@_){
    3. width: 0px;
    4. height: 0px;
    5. overflow: hidden;
    6. }
    7. .triangle(L,@w,@c){
    8. border-width: @w;
    9. //border-style:dashed 虚线
    10. border-style:dashed solid dashed dashed;
    11. border-color: transparent @c transparent transparent ;
    12. }
    13. .triangle(R,@w,@c){
    14. border-width: @w;
    15. border-style:dashed dashed dashed solid;
    16. border-color: transparent transparent transparent @c;
    17. }
    18. .triangle(T,@w,@c){
    19. border-width: @w;
    20. border-style:dashed dashed solid dashed ;
    21. border-color: transparent transparent @c transparent ;
    22. }
    23. .triangle(B,@w,@c){
    24. border-width: @w;
    25. border-style:solid dashed dashed dashed ;
    26. border-color: @c transparent transparent transparent ;
    27. }

     匹配模式.less文件:

    1. @import "01.less";
    2. #wrap .sjx{
    3. .triangle(R,40px,yellow)
    4. }

     在终端执行命令

     执行效果

     

    arguments

    1. =================less中========================
    2. .border(@1,@2,@3){
    3. border:@arguments;
    4. }
    5. #wrap .sjx{
    6. .boder(1px,solid,black)
    7. }
    8. ===============等价于css中==========================
    9. #wrap .sjx{
    10. border:1px solid #000000;
    11. }

     运算

    less中可以直接对变量进行+、-、*、/操作等,也可以使用小括号进行更复杂的操作(注意:进行运行操作时只要有一个有单位即可)

    1. .sjx{
    2. width:(100+100px)*10
    3. }

     四 less继承

    juzhong-extend.less中

    1. .juzhong{
    2. position: absolute ;
    3. left: 0;
    4. right: 0;
    5. bottom: 0;
    6. top: 0;
    7. margin: auto;
    8. }
    9. .juzhong:hover{
    10. background: red! important;
    11. }

     extend.less中

    1. *{
    2. margin:0;
    3. padding:0;
    4. }
    5. @import "juzhong-extend.less";
    6. #wrap{
    7. position: relative;
    8. width: 300px;
    9. height: 300px;
    10. border: 1px solid;
    11. margin: 0 auto;
    12. .inner{
    13. //继承
    14. &:extend(.juzhong all);
    15. &:nth-child(1){
    16. width: 100px;
    17. height:100px;
    18. background: pink;
    19. }
    20. &:nth-child(2){
    21. width: 50px;
    22. height: 50px;
    23. background: yellow;
    24. }
    25. }
    26. }

    编译后的extend.css文件

    1. *{
    2. margin:0;
    3. padding:0;
    4. }
    5. .juzhong,
    6. #wrap.inner {
    7. position: absolute;
    8. left: 0;
    9. right: 0;
    10. bottom: 0;
    11. top: 0;
    12. margin: auto;
    13. }
    14. .juzhong:hover,
    15. #wrap .inner:hover{
    16. background:red!important
    17. }
    18. #wrap {
    19. position: relative;
    20. width:
    21. 300px;
    22. height: 300px;
    23. border: 1px solid;
    24. margin: 0 auto;
    25. #wrap . inner :nth-child(1) {
    26. width: 100px
    27. height: 100px;
    28. background: pink;
    29. }
    30. #wrap . inner:nth-child(2) {
    31. width: 50px;
    32. height: 50px;
    33. background: yvellow;
    34. }

    避免编译

    1. ===================================less中==================================
    2. *{
    3. margin: 100 *10px;
    4. //~""可以避免less编译
    5. padding: ~"cac1(100px + 100)" ;
    6. }
    7. ==================================等价于css中============================
    8. *{
    9. margin:1000px ;
    10. padding:cacl(100px+100);
    11. }

  • 相关阅读:
    记一次JVM参数调优经历
    [Windows] GoLand 加载 k8s v1.14或之前版本 源码
    马斯克发起投票:是否应该出售特斯拉10%的股票?超5成粉丝赞成
    Golang map
    (三十三)大数据实战——Canal安装部署及其应用案例实战
    安卓TextView的lineHeight*lineCount!=height问题,解决不支持滚动的系统下对多页Text进行分页
    perl语言——length.pl脚本(统计fasta文件序列长度)
    Linux使用集成开发方式编译C++程序—笔记2
    从一个APP启动另一个APP的activity的方式
    Bigemap 在土地图利用环境生态行业中的应用
  • 原文地址:https://blog.csdn.net/qq_62401904/article/details/126029430