关于less的基本使用

news2024/11/24 7:54:42

1、介绍及概述

1.1、解释

  1. less 是方便开发人员书写CSS的一门预处理语言
  2. 浏览器只认识html /css /js格式的文件,所以直接引入.less文件,没有任何的效果,需要把less文件转换成css文件

1.2、概述

  1. CSS弊端
    • 没有逻辑性、变量、函数、作用域、不利于复用,更没有计算
  2. 介绍
    • lesscss预处理语言,除了less,还有scss(sass)stylus这些预处理语言。
  3. 官网
    • less官网地址
  4. 特点
    • LESSCSS赋予了动态语言的特性,如:变量, 继承, 运算, 函数
    • LESS既可以在客户端上运行 (支持IE 6+, Webkit, Firefox),也可以借助Node.js服务端运行
  5. 安装
    • node.js中安装less工具:
      • 全局安装:npm install less -g
      • 项目依赖:npm install less --save
      • 检查版本,测试是否安装成功:输入lessc -v,检查版本号
    • vscode安装插件 "easy less"

2、变量使用及解释

// 声明变量 => 使用@符号,代码结束后需要添加;分号
     @w: 100px;
     @h: 100px;
     @color: skyblue;

// 1、变量运算 => + - 两边需要有空格,单位不一致的情况下,以左边的单位为准
     .box3 {
       width: @w + 10; // 结果:100px + 10 = 110px
       height: @h - 30rem; // 结果:100px - 30 = 70px,这里因为单位不同,以左边为准,所以是70px
       background-color: @color;
       font-weight: @w*4rem; // 结果:100px * 4 = 400px,单位还是以px为准
       font-size: (@h / 2); // 结果:100px / 2 = 50px,除法需要添加()
     }

// 2、作用域 => 全局/局部作用域:变量作用域遵循就近原则
     // 2.1、@w: 300px; => 会覆盖前面@w的值,也就是全局作用域、全局变量
     // 2.2、局部作用域
         .box4 {
           @w: 300px; // 不会覆盖前面@w的值,也就是局部作用域,局部变量
           width: @w;
         }

// 3、选择器变量(了解)
     // 3.1、声明变量让它=选择器
         @bb: #wrap; // 这个id为wrap的值,赋值给@bb使用
     // 3.2、使用变量来设置元素的宽度,但注意:需要使用{}去包裹一下,表示这是一个元素,而不是变量
         @{bb} {
           width: @w;
         }
     // 3.3、还可以只存值,使用时前面携带选择器符号 
         @aa: content;
         .@{aa} {
           height: @h;
         }

// 4、属性变量,可以减少代码的书写量
     @mr: margin-right; // 把属性名赋值给变量,使用时,用{}包裹即可
     .box5 {
       @{mr}: 5px;
     }

// 5、url 变量
     @url: "../../img"; // 把重复的路径地址赋值给变量
     .box6 {
       background: url("@{url}/1.png");
     }
     .box7 {
       background: url("@{url}/2.png");
     }

// 6、声明变量 => 类似于下面的混合方法,存储多个样式值,使用时写成:@变量名()即可
     @bg: {
       background-color: blue;
       color: red;
     };
     
     .box9 {
       @bg();
     } 
     .box10 {
       width: @w;
       height: @h;
       @bg();
     }

3、常用语法

// 1、嵌套
     .wrap {
       background-color: #ccc;
       .header {
         color: #333;
         padding: 10px;
         .left {
           float: left;
           #info {
             a {
               color: #333;
             }
             // 2、父级引用 => &:代表了父级元素,也可以使用#info::after这种原本的形式添加
             &::after {
               font-size: 30px;
             }
           }
         }
         .right {
           float: right;
         }
       }
     }


// 3、媒体查询
     .component {
       width: 300px;
       @media (min-width: 768px) {
         width: 600px;
         @media (min-resolution: 192dpi) {
           background: red;
         }
       }
       @media (min-width: 980px) {
         background-color: yellow;
       }
     }


// 4、混合 => 注意:声明的时候,加(),就不会在css中生成
     .card {
       color: pink;
     }
     // 4.1、第一种写法:无参,调用时不添加()
     .box11 {
       .card; 
       font-size: 20px;
     }
     // 4.2、第二种写法:无参,调用时添加()
     .box12 {
       .card(); 
       margin: 10px;
     }
     // 4.3、携带参数
       // 1)编写
         .card2(@a,@b,@c){ // 1.1、声明形参:@a,@b,@c3个变量
           margin: @a @b;  // 1.1、使用实参中的值,设置外边距和字体大小
           font-size: @c;
         }
       // 2)使用 
         .box13 {
           .card2(10px, 20px,30px);
         }
     // 4.4、携带参数,并设置默认参数
     .card2(@a,@b,@c:10px) {
       margin: @a @b;
       font-size: @c;
     }
     .box14 {
       .card2(10px, 20px);
     }


// 5、@import 导入文件,可以引入任何css和less文件
     @import url("./03.27-11b.less");

4、补充——sass和stylus

4.1、sass语法

  1. 安装:
    • 安装全局:npm i sass -g
    • 项目中安装依赖:npm i sass -D
  2. vscode安装插件easy sass
  3. 创建sass文件
    • sass/scss,说明:sass是老版本,scss是新版本的语法升级,支持css3特性 {}
    • 文件后缀 .scss
  4. 文档地址
    • 文档地址
  5. 示例
/* sass */
.father
    width:100px;
	.son
        width:50px;
/* scss */
.father{
    width:100px;
    .son{
        width:50px;
    }
}

4.2、stylus

  1. 官网地址:stylus
  2. 文件后缀:.styl
  3. 简单介绍:以截图形式
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2142890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Paper Reading】结合 NanoFlow 研究,优化大语言模型服务效率的探索

作者 王伟 PAI引擎团队 近年来,人工智能领域的快速发展推动了大型语言模型的广泛应用,随之而来的是对其服务效率的迫切需求。论文《NanoFlow:Towards Optimal Large Language Model Serving Throughput》提出了一种突破性的新型服务框架&…

刚接触无处下手?水下航行器AUV/UUV六自由度模型/控制器设计matlab/simulink参考代码,基础的/进阶的,入门到顺利毕业/完成课题/发表论文。

导师不管?无人指导?无代码可参考?毫无头绪?换条思路借鉴一下吧,金钱买不到时间,但可以让你更多的支配你自己的时间,没错的,条条大路通罗马,毕竟前程是自己的,…

时序必读论文11|ICLR23 TimesNet时间序列分析的二维变化建模

论文标题:TEMPORAL 2D-VARIATION MODELING FOR GENERAL TIME SERIES ANALYSIS 开源代码:https://github.com/Thinklab-SJTU/Crossformer 前言 时间序列分析中,如何有效地建模时序数据中的时间变化是关键,然而直接从一维时序数据…

css <样式一>

1. 盒子模型 1.1>boarder 在这里插入图片描述 boarder 相邻框合并问题 boarder-classpse 相同的边框会合并在一起 text-alicn center 文字居中对齐 ########### boarder 会撑大盒子的实际大小 一个盒子加了boarder之后会变大的我可以把我的盒子内容进行修改, 减少像素内…

细胞分裂检测系统源码分享

细胞分裂检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

大数据Flink(一百二十):Flink SQL自定义函数(UDF)

文章目录 Flink SQL自定义函数(UDF) 一、概述 二、​​​​​​​自定义标量函数(UDSF) 三、​​​​​​​​​​​​​​自定义聚合函数(UDAF) 四、 ​​​​​​​​​​​​​​自定义表值函数(UDTF) Flink SQL自定义函数…

re题(20)BUUCTF [GWCTF 2019]pyre

BUUCTF在线评测 (buuoj.cn) Python解包及反编译: PyInstaller Extractoruncompyle6 - 知乎 (zhihu.com) python撤消: Pycharm撤销操作和代码跳转后退回操作以及消除波浪线操作快捷键_pycharm怎么反撤销-CSDN博客 把.pyc文件变成py文件 把.py文件用记事本打开 cod…

supermap iclient3d for cesium模型沿路径移动

可以直接settimeout隔一段时间直接设置位置属性,但是得到的结果模型不是连续的移动,如果想要连续的移动,就需要设置一个时间轴,然后给模型传入不同时间时的位置信息,然后就可以了。 开启时间轴 let start Cesium.Jul…

负载均衡:从理论到实践 ---day04

负载均衡 负载均衡1.什么是负载均衡2.负载均衡的分类硬件负载均衡软件负载均衡选择 3.引入负载均衡的好处 第一个Ribbon实例步骤1:步骤2:步骤3:步骤4: 问题1. 负载均衡的主要目标是什么?2. 负载均衡器的作用是什么&…

【云岚到家-即刻体检】-day07-2-项目介绍及准备

【云岚到家-即刻体检】-day07-2-项目介绍及准备 1 项目介绍1)项目简介2)界面原型3)实战目标 2 搭建实战环境1)服务端2)管理端前端工程3)用户端前端工程4)测试 3 熟悉项目代码1)接口文…

Linux操作系统面试题记录

一、进程与线程 1.并发和并行的区别 并发:一个cpu处理器处理多个任务; 并行:多个cpu处理器处理多个任务; 2.进程和线程是什么?区别?何时用线程何时用进程? Linux中其实没有进程线程之分&…

面试官:讲一讲Spring MVC源码解析

好看的皮囊千篇一律、有趣的灵魂万里挑一 文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。…

驱动器磁盘未格式化恢复实战

驱动器磁盘未格式化的深度剖析 在日常的数字生活中,驱动器作为数据存储的重要载体,承载着用户无数的珍贵资料。然而,当遇到“驱动器中的磁盘未被格式化”的提示时,这份平静往往会被瞬间打破。这一状况不仅让用户感到困惑和焦虑&a…

JZ2440开发板——S3C2440的UART的使用

以下内容源于韦东山课程的学习与整理,如有侵权请告知删除。 一、UART硬件简介 UART,全称是“Universal Asynchronous Receiver Transmitter”,即“通用异步收发器”,也就是我们日常说的“串口”。 它在嵌入式中用途非常广泛&…

LabVIEW提高开发效率技巧----VI服务器和动态调用

VI服务器(VI Server)和动态调用是LabVIEW中的两个重要功能,可以有效提升程序的灵活性、模块化和可扩展性。通过这两者的结合,开发者可以在运行时动态加载和调用VI(虚拟仪器),实现更为复杂的应用…

【 html+css 绚丽Loading 】 000052 璇玑转轮

前言:哈喽,大家好,今天给大家分享今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 &#x1f…

实时数仓3.0DWD层

实时数仓3.0DWD层 DWD层设计要点:9.1 流量域未经加工的事务事实表9.1.1 主要任务9.1.2 思路9.1.3 图解9.1.4 代码 9.2 流量域独立访客事务事实表9.2.1 主要任务9.2.2 思路分析9.2.3 图解9.2.4 代码 9.3 流量域用户跳出事务事实表9.3.1 主要任务9.3.2 思路分析9.3.3 …

全面掌握 Jest:从零开始的测试指南(下篇)

在上一篇测试指南中,我们介绍了Jest 的背景、如何初始化项目、常用的匹配器语法以及钩子函数的使用。这一篇篇将继续深入探讨 Jest 的高级特性,包括 Mock 函数、异步请求的处理、Mock 请求的模拟、类的模拟以及定时器的模拟、snapshot 的使用。通过这些技…

办了房屋抵押经营贷,空壳公司不怕被查吗?续贷不上怎么办?

很多有房的朋友,想必都办理过抵押经营贷款。但是,当办完房屋抵押经营贷款之后,钱到手了,别光顾着乐呵,贷后管理可是门大学问,稍有不慎,麻烦就找上门了。咱得确保资金用得对路,征信亮…

windows 使用wsl安装docker

前言 很多情况下代码开发需要依赖 Linux 系统,比如安装 Docker 容器来实现代码隔离,然而问题是大部分同学的电脑都是 Windows 系统,这时就会出现大量报错,经历过的同学一定是边踩坑边落泪。 如何免费拥有一台 Linux 服务器呢&…