当前位置: 首页 > news >正文

关于less的基本使用

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 = 110pxheight: @h - 30rem; // 结果:100px - 30 = 70px,这里因为单位不同,以左边为准,所以是70pxbackground-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 */
.fatherwidth:100px;.sonwidth:50px;
/* scss */
.father{width:100px;.son{width:50px;}
}

4.2、stylus

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java设计模式—面向对象设计原则(一) ----->开闭原则OCP(完整详解,附有代码+案例)
  • re题(27)BUUFCTF-[MRCTF2020]Transform
  • C++速通LeetCode简单第18题-杨辉三角(全网唯一递归法)
  • 如何快速解决程序中的BUG
  • 商淘云九周年 分账系统助力企业合规发展
  • 深度学习数据集交通类常见图像分类、目标检测、分割图像数据集(深度学习数据集 - 交通类解决方案)
  • PHP环境搭建详细教程
  • 中秋献礼!2024年中科院一区极光优化算法+分解对比!VMD-PLO-Transformer-LSTM多变量时间序列光伏功率预测
  • 2021 年 6 月青少年软编等考 C 语言二级真题解析
  • QT Mode/View之View
  • 【webpack4系列】编写可维护的webpack构建配置(四)
  • Ubuntu 安装包下载(以20版本 阿里镜像站为例子)
  • Spring Boot-静态资源管理问题
  • Windows环境本地部署Oracle 19c及卸载实操手册
  • Vue3项目打包报错-内存溢出解决方法
  • 分享一款快速APP功能测试工具
  • 【347天】每日项目总结系列085(2018.01.18)
  • Docker 笔记(2):Dockerfile
  • extract-text-webpack-plugin用法
  • GitUp, 你不可错过的秀外慧中的git工具
  • Java应用性能调优
  • js ES6 求数组的交集,并集,还有差集
  • MySQL-事务管理(基础)
  • REST架构的思考
  • Xmanager 远程桌面 CentOS 7
  • 大快搜索数据爬虫技术实例安装教学篇
  • 多线程 start 和 run 方法到底有什么区别?
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 前端js -- this指向总结。
  • 前端之React实战:创建跨平台的项目架构
  • 实现菜单下拉伸展折叠效果demo
  • 实现简单的正则表达式引擎
  • 微信小程序开发问题汇总
  • 硬币翻转问题,区间操作
  • 阿里云ACE认证学习知识点梳理
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​queue --- 一个同步的队列类​
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • # Redis 入门到精通(九)-- 主从复制(1)
  • ### RabbitMQ五种工作模式:
  • #if和#ifdef区别
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • #pragma once与条件编译
  • #微信小程序(布局、渲染层基础知识)
  • (2024)docker-compose实战 (9)部署多项目环境(LAMP+react+vue+redis+mysql+nginx)
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (Java企业 / 公司项目)点赞业务系统设计-批量查询点赞状态(二)
  • (NSDate) 时间 (time )比较
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (接口封装)
  • (力扣)循环队列的实现与详解(C语言)
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (轉貼) UML中文FAQ (OO) (UML)
  • ****Linux下Mysql的安装和配置