博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript基础学习——CSS预处理Less
阅读量:3916 次
发布时间:2019-05-23

本文共 4677 字,大约阅读时间需要 15 分钟。

一、CSS预处理

目前CSS预处理语言主要有:Less,SASS,Stylus等。浏览器不能编译.less/.scss/.sass/.styl等文件,在html文件引入前面这些样式文件,必须先编译成.css文件。

二、在VSCode中编译less

1、安装插件:按Ctrl + Shift + x,打开扩展面板,安装Easy LESS。

2、修改设置文件(settings.json),在settings.json中添加如下代码:

    "[less]":{
        "editor.suggest.insertMode": "replace"
    },
    "less.compile": {
        "compress": false, /* 是否进行压缩处理 */
        "sourceMap": false,/* 是否生成map(映射文件)文件,如果为true,则可以在控制台看到less的行数 */
        "out": true,/* 编译后输出 */
        "outExt": ".css" /* 设置编译后的文件的扩展名 */
    }

三、Less官网:http://lesscss.cn

四、CSS预处理

CSS预处理是一种将CSS作为目标生成文件的,使用变量、函数及简单的逻辑实现更加简洁、适应性更强、可读性更好、更易于代码维护的兼容浏览器的页面样式文件。通过编程来写CSS。

五、Less

Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量、混合、函数等功能,让 CSS 更易维护、方便制作主题、扩充。Less 可以运行在 Node 或浏览器端。形成的文件的扩展名为:.less。

使用的目的:是为了提升开发效率。

六、Less语法

1、变量

格式:@变量名: 值;

注意:在less中引用变量时,要把变量当成一个常量处理。

创建的后缀一定是xxx.less

@bgColor:pink;div{  background-color: @bgColor;}

2、混合用法

在less中定义一些通用的属性集为一个class,然后再在另一个样式中去调用它。

@color:rbg(255,189,91);@boxShadow:0px -2px 2px 2px #999;.box{  color: @color;  width: 200px;  height: 50px;  box-shadow: @boxShadow;  margin-bottom: 10px;}p{  color: @color;  width: 200px;  height: 100px;  border: 1px solid #000;}@cl:#eee;@highlight:"cl";#header{  color: @@highlight;}

3、带参数的混合用法

      用法1:

        .类名(){

          /*css样式表;*/

        }

.bd{  border-top: 1px solid #000;  border-bottom: 1px solid #999;}.txtOverflow{  width: 200px;  overflow: hidden;}#box{  color: red;  .bd;}p{  .bd;  .txtOverflow;}

      用法2:

        .类名(参数列表){
          属性名: 参数1;
          属性名: 参数2;
          ....
        }

      用法3:

        .类名(参数1:默认值,参数2:默认值,...){
          属性名: 参数1;
          属性名: 参数2;
          ....
        }

.bd(@lineWidth:3px){  border-top: @lineWidth solid #000;  border-bottom: @lineWidth solid #000;}.txtOverflow{  width: 200px;  overflow: hidden;}#box{  color: red;  .bd(2px)}p{  .bd(1px);  .txtOverflow}span{  .bd();  .bd}.shadow(@x1,@y1,@blur1,@color1,@x2:2px,@y2:2px,@blur2:3px,@color2:gray){  box-shadow: @x1 @y1 @blur1 @color1;  text-shadow: @x2 @y2 @blur2 @color2;}article{  .shadow(3px,3px,5px,green,1px,0,2px,#000);}address{  .shadow(3px,3px,5px,green);}.txtOver(){  white-space: nowrap;  overflow: hidden;  text-overflow: ellipsis;}.p1{  .txtOver();}

4、嵌套规则

      格式:
        父级(父类){
          属性:属性值;
          ...
          子级(子类){
            属性:属性值;
            ...
            &:hover{
              属性:属性值;
              ...
            }
            &:before{
              属性:属性值;
              ...
            }
            &:nth-of-type(n){
              属性:属性值;
              ...
            }
            ...
          }
        }

.box{  width: 100%;  height: 200px;overflow: hidden;  span{    color: red;    display: block;  }  ul{    list-style: none;    li{      float: left;      margin-right: 10px;      &:nth-child(2){        color: blue;      }      p{        line-height: 1.5em;        span{          color:red;          font-style: italic;          }        a{          text-decoration: none;          color: #123456;          position: relative;          &:hover{            text-decoration: underline;            color: red;          }        &:before{          content:"";          display: block;          width: 100%;          height: 1px;          position: absolute;          left: 0;          top: 0;          border-top: 1px solid #000;          }        }      }       }  }}

5、运算

在Less中可以使用加、减、乘和除运算。

注意:减号左右要加空格,其它运算符可以不加。

@w:100px;@num:10px;p{  width: @w*2.5;}.contain1{  margin: @num * 2 @num *1.5 @num @num - 2;}.container2{  margin: (@num+5)*2 @num*1.5 @num @num - 20; /* 减号左右要加空格,其它运算符左右可以不加空格 */ }

6、作用域

作用域在编译采用最近原则。首先会从当前作用域内查找变量或混合模块,如果没找到,则去父级作用域中查找,直到找到为止。

@var:red;header{  @var:blue;  nav{    background-color: @var;  }}section{  border: 1px solid @var;}footer{  @var:pink;  color: @var;}

7、函数

(1)Color函数

颜色会先被转化为HSL色彩空间,然后在通道级别中操作。

设置颜色或饱和度:
          lighten(@color, 10%); 返回一个比@color浅10%的颜色
          darken(@color, 10%); 返回一个比@color 深10%的颜色
          saturate(@color, 10%); 返回一个比color饱和比高10%的颜色
          desaturate(@color, 10%); 返回一个比color饱和比低10%的颜色
          fadein(@color, 10%); 返回一个比@color 透明度低10%的颜色
          fadeout(@color, 10%); 返回一个比@color 透明度高10%的颜色
          fade(@color, 50%); 返回一个@color颜色的50%透明度的颜色
          spin(@color, 10); 返回一个比@color 色调大10度的颜色
          spin(@color, -10); 返回一个比@color 色调小10度的颜色
          mix(@color1, @color2) 返回一个@color1和@color2混合的颜色

提取颜色信息:

          hue(@color); 返回@color颜色的色调通道
          saturation(@color); 返回@color颜色的饱和度通道
          lightness(@color); 返回@color颜色的亮度通道

@cl1:rgb(71, 20, 105);@cl2:#fff;p{  color: lighten(@cl1, 20%);}span{  color: darken(@cl2, 100%);}em{  color: saturate(@cl1, 20%);  background-color: fadein(@cl1, 20%)}sup{  color: mix(@cl1, @cl2);}a{  background-color: hsl(hue(@cl1),60%,70%);/* h:0-360,s:0-100%,l:0-100% */}

(2)Math函数

        round(x,y) 对x四舍五入,保留y个小数点
        ceil(x) 向上取整
        floor(x) 向下取整
        percentage(x) 取百分数。eg:percentage(0.6)返回60%
        min(a,b,c,d,e…); 取最小值
        max(a,b,c,d,e…); 取最大值

@w: 2.4px;div{  border: round(@w*3) solid #000;}.width(@width){  width: percentage(@width);}.box{  .width(.8);  height: max(10px,20px,-9px,-100px);}

8、避免编译

在开发时,可能会现Less不识别的代码,或者不让编译,这时需要用到Less的专用语法-避免编译。用双引号引起来,再在前面加上~。

.calc(@x){  height: @x; }  .box{   width: ~"calc(100px - 20px)";   .calc(100px - 20px); }

 

转载地址:http://mfvrn.baihongyu.com/

你可能感兴趣的文章
欢迎来到 C# 9.0(Welcome to C# 9.0)
查看>>
Dapr微服务应用开发系列1:环境配置
查看>>
使用 Visual Studio 2019 批量添加代码文件头
查看>>
【BCVP更新】StackExchange.Redis 的异步开发方式
查看>>
.NET5.0 Preview 8 开箱教程
查看>>
真・WPF 按钮拖动和调整大小
查看>>
做权限认证,还不了解IdentityServer4?不二话,赶紧拥抱吧,.NET Core官方推荐!...
查看>>
编写第一个 .NET 微服务
查看>>
深入探究.Net Core Configuration读取配置的优先级
查看>>
Blazor带我重玩前端(六)
查看>>
使用 C# 捕获进程输出
查看>>
数据库单表千万行 LIKE 搜索优化手记
查看>>
.NET Core 中生成验证码
查看>>
.NET Core 中导入导出Excel
查看>>
初识ABP vNext(8):ABP特征管理
查看>>
WPF 消息框 TextBox 绑定新数据时让光标和滚动条跳到最下面
查看>>
【BCVP】实现基于 Redis 的消息队列
查看>>
网络安全逐渐成为程序员的必备技能
查看>>
统信发布UOS V20 进军个人市场 生态日益完善
查看>>
【追加功能】OFFICE插件管理工具重整后再上路,更好用易用。
查看>>