• less点滴


    1.简单的嵌套;

    less中显示:

    css中显示

     2.作为值的变量:

    less中:

    @green: #801f77;
    @baise:white;

    header,footer{
    background: @green;
    h1{
    color: @baise;
    }
    }

    3.作为属性名和选择器名:

    //作为选择器和属性名的变量

    @kuandu:width;

    .@{kuandu}{
    @{kuandu}:150px
    }

    //作为URL的变量
    @imgurl:"https://www.baidu.com/img/";
    header{
    background: @green url("@{imgurl}bdlogo.png");
    height: 500px;
    }

    4.  //定义多个相同名称的变量时

    @var: 0;

    .class {
    @var: 1;
    .brass {
    @var: 2;
    three: @var; //这是的值是3
    @var: 3;
    }
    one: @var; //这是的值是1
    }

    5.

    //基本混合
    .font_hn{
    color: red;
    font-family: microsoft yahei, "黑体", Arial, Simsun, "Arial Unicode MS", Mingliu, Helvetica;
    }
    h1{
    font-size: 28px;
    .font_hn;
    }
    h2{
    font-size: 24px;
    .font_hn;
    }
    //不带输出的混合,类名后面使用()
    .font_hn(){
    color: red;
    font-family: microsoft yahei, "黑体", Arial, Simsun, "Arial Unicode MS", Mingliu, Helvetica;
    }
    h1{
    font-size: 28px;
    .font_hn;
    }
    h2{
    font-size: 24px;
    .font_hn;
    }

    //带选择器的混合
    .my-hover-mixin {
    &:hover {
    border: 1px solid red;
    }
    }
    button {
    .my-hover-mixin();
    }
    h1{
    .my-hover-mixin();
    }

    //带参数的混合
    .border(@color){
    border: 1px solid @color;
    }
    h1{
    &:hover{
    .border(green);
    }
    }
    h2{
    &:hover{
    .border(#000);
    }
    }
    /*带参数并且有默认值的混合*/
    //带参数并且有默认值的混合
    .border_you(@color:red){
    border: 1px solid @color;
    }
    h1{
    &:hover{
    .border_you();
    }
    }
    h2{
    &:hover{
    .border_you(yellow);
    }
    }

    6.

    //基本混合
    .font_hn{
    color: red;
    font-family: microsoft yahei, "黑体", Arial, Simsun, "Arial Unicode MS", Mingliu, Helvetica;
    }
    h1{
    font-size: 28px;
    .font_hn;
    }
    h2{
    font-size: 24px;
    .font_hn;
    }
    //不带输出的混合,类名后面使用()
    .font_hn(){
    color: red;
    font-family: microsoft yahei, "黑体", Arial, Simsun, "Arial Unicode MS", Mingliu, Helvetica;
    }
    h1{
    font-size: 28px;
    .font_hn;
    }
    h2{
    font-size: 24px;
    .font_hn;
    }

    //带选择器的混合
    .my-hover-mixin {
    &:hover {
    border: 1px solid red;
    }
    }
    button {
    .my-hover-mixin();
    }
    h1{
    .my-hover-mixin();
    }

    //带参数的混合
    .border(@color){
    border: 1px solid @color;
    }
    h1{
    &:hover{
    .border(green);
    }
    }
    h2{
    &:hover{
    .border(#000);
    }
    }
    /*带参数并且有默认值的混合*/
    //带参数并且有默认值的混合
    .border_you(@color:red){
    border: 1px solid @color;
    }
    h1{
    &:hover{
    .border_you();
    }
    }
    h2{
    &:hover{
    .border_you(yellow);
    }
    }
    /*带多个参数的混合*/
    //带多个参数的混合
    //.mixin(@color; @padding:xxx; @margin: 2) {
    // color-3: @color;
    // padding-3: @padding;
    // margin: @margin @margin @margin @margin;
    //}

    //.divmaizi{
    // .mixin(red;)
    //}


    //.divmaizi {
    // .mixin(1,2,3;something, ele;132);
    //}
    //.divmaizi {
    // .mixin(1,2,3);
    //}
    .divmaizi {
    .mixin(1,2,3;);
    }

    //如果传参的括号里面全部都是以“,”分割,那么会依次传给各个参数值,
    //如果传参的括号里面既有“,”又有“;”那么,会把“;”前面的看作一个整体,传给一个参数值

    /*定义多个具有相同名称和参数数量的混合*/
    //.mixin(@color) {
    // color-1: @color;
    //}
    //.mixin(@color; @padding:2) {
    // color-2: @color;
    // padding-2: @padding;
    //}
    //.mixin(@color; @padding; @margin: 2) {
    // color-3: @color;
    // padding-3: @padding;
    // margin: @margin @margin @margin @margin;
    //}
    //
    //.some .selector div {
    // .mixin(#008000);
    //}

    //命名参数
    /*命名参数*/

    .mixin(@color: black; @margin: 10px; @padding: 20px) {
    color: @color;
    margin: @margin;
    padding: @padding;
    }

    .class1 {
    .mixin(@margin: 20px; @color: #33acfe);
    }
    .class2 {
    .mixin(#efca44; @padding: 40px);
    }
    .class3{
    .mixin(@padding: 80px;)
    }

    /*@arguments;*/
    .border(@x:solid,@c:red){
    border: 21px @arguments;
    }
    .div1{
    .border(solid);
    }

    //
    .border(all,@w: 5px){
    border-radius: @w;
    }
    .border(t_l,@w:5px){
    border-top-left-radius: @w;
    }
    .border(t_r,@w:5px){
    border-top-right-radius: @w;
    }
    .border(b-l,@w:5px){
    border-bottom-left-radius: @w;
    }
    .border(b-r,@w:5px){
    border-bottom-right-radius: @w;
    }

    footer{
    .border(t_l,10px);
    .border(b-r,10px);
    background: #33acfe;
    }

    //混合的返回值
    .average(@x, @y) {
    @average: ((@x + @y) / 2);
    @he:(@x + @y);
    }

    div {
    .average(16px, 50px);
    padding: @average;
    margin: @he;
    }

     7.嵌套规则:

    //传统写法
    //header{
    // 960px;
    //}
    //header h1 {
    // font-size: 18px;
    // color: green;
    //}
    //header .logo{
    // 300px;
    // height: 150px;
    // background: darkred;
    //}
    //header .logo:hover{
    // background: forestgreen;
    //}

    //less写法
    //header{
    // 960px;
    // h1{
    // font-size: 18px;
    // color: green;
    // }
    // .logo{
    // 300px;
    // height: 150px;
    // background: darkred;
    // &:hover{
    // background: forestgreen;
    // }
    // }
    //}

    .a{
    .b{
    .c{
    color: 123;
    }
    }
    }
    .a{
    .b{
    .c&{
    color: 123;
    }
    }
    }

    p, a, ul, li {
    border-top: 2px dotted #366;
    & & {
    border-top: 0;
    }
    }

    a , b ,c{
    & & & {
    border-top: 0;
    }
    }

    8.运算:

    //.wp{
    // margin: 0 auto;
    // background: forestgreen;
    // 450px + 450;
    // height: 400 + 400px;
    //}

    //涉及到优先级,使用()区分优先级
    .wp{
    margin: 0 auto;
    (550 - 50)*2 + 24px;
    height: 400 + 400px;
    background:#ff0000 - 55; //#000021 c8c8c8
    }

    //rgb模式他的值是 0~255 ,当你的值超过255 ,那么就会以255进行相加操作

    9.函数:

    .wp {
    background: #ff0000;
    z-index: blue(#050506);
    }

    10.命名空间:

    //#bgcolor(){
    // background: #ffffff;
    // .a{
    // color: #888888;
    // &:hover{
    // color: #ff6600;
    // }
    // .b{
    // background: #ff0000;
    // }
    // }
    //}
    //
    //.wi{
    // background: green;
    // color: #fff;
    // .a{
    // color: green;
    // background: #ffffff;
    // }
    //}
    //
    //.bgcolor1{
    // background: #fdfee0;
    // #bgcolor>.a;
    //}
    //.bgcolor2{
    // .wi>.a;
    //}


    //省略>写法
    #bgcolor(){
    background: #ffffff;
    .a{
    color: #888888;
    &:hover{
    color: #ff6600;
    }
    .b{
    background: #ff0000;
    }
    }
    }
    .wi {
    background: green;
    color: #fff;
    .a {
    color: green;
    background: #ffffff;
    }
    }
    .bgcolor1{
    background: #fdfee0;
    #bgcolor .a;
    }
    .bgcolor2{
    .wi .a;
    }

    11.作用域:

    @clolor:#ffffff;

    .bgcolor{
    50px;
    a{
    color: @clolor;
    }
    }

    @clolor:#ff0000;

    12.关键字important

    .foo (@bg: #f5f5f5, @color: #900) {
    background: @bg;
    color: @color;
    font-size: 16px;
    font-weight: 900;
    }

    .unimportant {
    .foo();
    }
    .important {
    .foo() !important;
    }

    13.条件表达式

    //.mixin (@a) when (lightness(@a) >= 50%) { //255/2=127.5
    // background-color: black;
    //}
    //.mixin (@a) when (lightness(@a) < 50%) {
    // background-color: white;
    //}
    //.mixin (@a) {
    // color: @a;
    //}
    //.class1 { .mixin(#7e7e7e) } //221 > 127.5 >50% background-color: black; 7e7e7e = 126
    //.class2 { .mixin(#808080) } //85 <127.5 <50% background-color: white; 808080 = 128

    //iscolor,isnumber.....判断值得类型
    //.mixin (@a) when (iscolor(@a)) { //255/2=127.5
    // background-color: black;
    //}
    //.mixin (@a) when (isnumber(@a) ) {
    // background-color: white;
    // shuzi:shuzi;
    //}
    //.mixin (@a) {
    // color: @a;
    //}
    //.class1 { .mixin(#7e7e7e) } //background-color: black;
    //.class2 { .mixin(123) } //background-color: white;

    //ispixel,ispercentage.....单位检查函数
    .mixin (@a) when (ispixel(@a)) {
    background-color: black;
    }
    .mixin (@a) when (ispercentage(@a) ) {
    background-color: white;
    }
    .mixin (@a) {
    @a;
    }
    .class1 { .mixin(960px) } //background-color: black; 960px
    .class2 { .mixin(95%) } //background-color: white;95%

    14.循环:

    //.loop(@counter) when (@counter > 0) {
    // .loop((@counter - 1)); // 递归调用自身 4 3 2 1 0
    // (10px * @counter); // 每次调用时产生的样式代码 50px 40px 30px 20px 10px
    //}
    //
    //div {
    // .loop(5); // 调用循环
    //}

    //.loop(@counter) when (@counter > 0) {
    // h@{counter}{
    // padding: (10px * @counter);
    // }// 每次调用时产生的样式代码
    // .loop((@counter - 1)); // 递归调用自身
    //}
    //
    //div {
    // .loop(6); // 调用循环
    //}

    .loop(@counter) when (@counter < 7) {
    h@{counter}{
    padding: (10px * @counter);
    }// 每次调用时产生的样式代码
    .loop((@counter + 1)); // 递归调用自身
    }

    div {
    .loop(1); // 调用循环
    }

     14.合并属性

    //+ 合并以后,以逗号分割属性值
    .mixin() {
    box-shadow+: inset 0 0 10px #555 ;
    }
    .myclass {
    .mixin();
    box-shadow+: 0 0 20px black;
    }

    //+_ 合并以后,以空格分割属性值
    .a(){
    background+:#f60;
    background+_:url("/sss.jod") ;
    background+:no-repeat;
    background+_:center;
    }
    .myclass {
    .a()
    }
    //background+_:#f60 url("/sss.jod");

    15.其他函数:

    //.x(1) { x:11 }
    //.x(2) { y:22 }
    //.x(@x) when (default()) {z:@x}
    //body{
    //// background: color("#f60");
    //// convert(1s,ms);
    //// background: data-uri('arr.jpg');
    //}
    //.div1{
    // .x(1)
    //}
    //.div2{
    // .x(123)
    //}


    //.x(@x) when (ispixel(@x)) {@x}
    //.x(@x) when not(default()) {padding:(@x/10)}
    //
    //.div1{
    // .x(100px)
    //}
    //
    //.div2{
    // .x(100cm);
    // color:red;
    //}


    div{
    unit(100px);
    }

    16.字符串函数,长度相关的函数。

    div{
    // d:escape('#, ^, (, ), {, }, |, :, >, <, ;, ], [ , =');
    // filter: e("ms:alwaysHasItsOwnSyntax.For.Stuff()");
    // filter: ~"ms:alwaysHasItsOwnSyntax.For.Stuff()";
    //// calc(960px-100px);
    // calc(~'960px-100px');
    // height: calc(~'960px-100px');
    // font-family: %( "%a %a" , "Microsoft", "YaHei");
    // font-family: ""Microsoft" "YaHei"";

    // font-family: %( "%A %a" , "Microsoft", "YaHei");
    // font-family: "%22Microsoft%22 "YaHei"";

    // font-family: %( "%s %s" , F60, "YaHei");

    // font-family: %( "%s %s" , "Microsoft", "YaHei");
    // font-family: "Microsoft YaHei";

    //content: replace("Hello, maizi", "maizi", "LESS");
    // content: replace("Hello, A", "A", "B");

    //n:length(1px solid #0080ff);

    @list: "A", "B", "C", "D";
    n:extract(@list,4)
    }

    17.数学函数:

    div{
    // ceil(2.9999999px); //1.ceil()函数 向上取整
    // floor(2.9999999px); //1.floor()函数 向下取整
    // percentage( 0.5px); 将浮点数转换为百分比

    // 取整和四舍五入
    // 4.5px ;
    // round(4.5px) ;
    //
    // 4.4px ;
    // round(4.4px) ;

    // 计算一个数的平方根,原样保持单位。
    // sqrt(16px);
    // sqrt(9px);

    // 计算数字的绝对值,原样保持单位。
    // top: -999px;
    // top: abs(-999px);

    // sin(1); //1弧度角的正弦值
    // sin(1deg);//1角度角的正弦值
    // sin(1grad); //1百分度角的正弦值

    // 反正弦值
    // asin(-0.84147098);
    // asin(0);
    // asin(2);


    // cos(1); //1弧度角的余弦值
    // cos(1deg);//1角度角的余弦值
    // cos(1grad); //1百分度角的余弦值

    // tan(1); //1弧度角的正切值
    // tan(1deg);//1角度角的正切值
    // tan(1grad); //1百分度角的正切值

    // PI
    // pi();

    // 乘方运算
    // pow(2px,2);
    // pow(3px,2);
    // pow(4px,2);
    // pow(25px,0.5);

    // mod()取余
    // mod(3px,2);

    min(3px,2px,1px);
    max(3px,2px,1px);
    }

    18.

    //如果一个值是一个数字,返回'真(true)',否则返回'假(false)'.
    //.m(@x) when (isnumber(@x)) {
    // x:@x
    //}
    //div{
    //.m(123);
    //.m(ABC);
    //}

    //如果一个值是一个字符串,返回'真(true)',否则返回'假(false)'.
    //.m(@x) when (isstring(@x)) {
    // x:@x
    //}
    //div{
    //.m(123);
    //.m("ABC");
    //}

    //如果一个值是一个颜色,返回'真(true)',否则返回'假(false)'.
    //.m(@x) when (iscolor(@x)) {
    // x:@x
    //}
    //div{
    // .m(123);
    // .m("ABC");
    // .m(red);
    //}

    //如果一个值是一个关键字,返回'真(true)',否则返回'假(false)'.
    //.m(@x) when (iskeyword(@x)) {
    // x:@x
    //}
    //div{
    // .m(123);
    // .m("ABC");
    // .m(red);
    // .m(ABC);
    //}

    //如果一个值是一个url地址,返回'真(true)',否则返回'假(false)'.
    //.m(@x) when (isurl(@x)) {
    // x:@x
    //}
    //div{
    // .m(123);
    // .m("ABC");
    // .m(red);
    // .m(ABC);
    // .m(url(arr.jpg));
    //}

    //如果一个值是带像素长度单位的数字,返回'真(true)',否则返回'假(false)'.
    //.m(@x) when (ispixel(@x)) {
    // x:@x
    //}
    //div{
    // .m(123);
    // .m("ABC");
    // .m(red);
    // .m(ABC);
    // .m(url(arr.jpg));
    // .m(220px);
    // .m(220cm);
    //}

    //如果一个值是带em长度单位的数字,返回'真(true)',否则返回'假(false)'.
    //.m(@x) when (isem(@x)) {
    // x:@x
    //}
    //div{
    // .m(123);
    // .m("ABC");
    // .m(red);
    // .m(ABC);
    // .m(url(arr.jpg));
    // .m(220px);
    // .m(240em);
    //}

    //如果一个值是带百分比单位的数字,返回'真(true)',否则返回'假(false)'.
    //.m(@x) when (ispercentage(@x)) {
    // x:@x
    //}
    //div{
    // .m(123);
    // .m("ABC");
    // .m(red);
    // .m(ABC);
    // .m(url(arr.jpg));
    // .m(220px);
    // .m(240em);
    // .m(260%);
    //}

    //如果一个值是带指定单位的数字,返回'真(true)',否则返回'假(false)'.
    .m(@x) when (isunit(@x,em)) {
    x:@x
    }
    div{
    .m(123);
    .m(220px);
    .m(240em);
    .m(280em);
    .m(290em);
    .m(260%);
    }

    19.颜色就不看了。

  • 相关阅读:
    js变量如何赋值给css使用?
    前端预览与下载PDF小结
    子组件如何改父组件传过来的值
    TensorRT转换时的静态模式与动态模式
    Linux:搭建GlusterFS文件系统
    OpenFeign传输文件MultipartFile
    Docker:commit、export、import、save、load命令的使用
    Git:代码版本回退
    docker安装Drools Workbench
    ArchLinux:Typora设置gitee图床
  • 原文地址:https://www.cnblogs.com/coding4/p/6358009.html
Copyright © 2020-2023  润新知