CSS预处理器【Less】

简介: CSS预处理器【Less】


一小池勺❤️❤️❤️ ❤️❤️❤️❤️胸有惊雷而面如平湖者,可拜上将军也。


less

http://lesscss.cn/

less是css预编译语言,和其类似的预编译器还有: sass, stylus等,所谓的预编译,其实是把css这种标记语言按照面向对象(编程语言的方式)进行编写(有变量,函数,判断等操作),但是这种写法浏览器是不能正常识别的,需要我们把其再编译为正常的css代码才可以。

嵌套

嵌套写法-告别很多前缀问题

.box {
    margin: 20px auto;
    width: 100px;
    height: 100px;
    border: 1px solid red;
    overflow: hidden;
}
.box img {
    width: 100%;
    height: 100%;
    transition: all 1s;
}
.box:hover img {
    transform: scale(1.3);
}
.box {
    margin: 20px auto;
    width: 100px;
    height: 100px;
    border: 1px solid red;
    overflow: hidden;
    img {
        width: 100%;
        height: 100%;
        transition: all 1s;
    }
    &:hover {
        img {
            transform: scale(1.3);
        }
    }
}

作用域

类似于JS作用域链这套机制

每一个大括号都是一个私有的作用域,在里面用到的变量,先看是否为私有的(是否在当前作用域中声明过和形参变量),不是私有的,找上级作用域中的

@A: lightblue;
.box {
    @A: lightgreen;
    margin: 20px auto;
    width: 100px;
    height: 100px;
    border: 1px solid @A;
    img {
        width: 100%;
        height: 100%;
        transition: all 1s;
    }
}

变量

变量一定-样式更改更为灵活轻便,同样便于一些计算

/* 颜色定义为变量 */
@color-red: lightcoral;
/* 图片路径前缀定义为变量 */
@images: "../images";
.box {
    @W:100;
    @H:100px;
    margin: 20px auto;
    width: unit(@W,px);
    height: @H;
    border: 1px solid @color-red;
    overflow: hidden;
    /* 可以理解是字符串的拼接 */ 
    background: url("@{images}/bg.png");
   /* @W-20 这样写的话就会被误解为一个变量名 */ 
    img {
        /* less中内置的函数,是用来设置或者去除单位的 */ 
        width: unit((@W) - 20,px);
        height: unit(unit(@H,px) - 20,px);
        transition: all 1s;
    }
    /* 嵌套中的连接符,让后面的选择器紧挨着父选择器 &:hover => .box:hover*/ 
    &:hover {
        img {
            transform: scale(1.3);
        }
    }
}

函数

  1. 每一个样式类都可以被充当为一个函数,直接在其它的作用域中调取执行(执行特点:不需要传参时,可以不加小括号),但是这种函数的调用是把原有的代码都原封不动地拿过来一份一摸一样地(包括了其所有的后代样式)。
  2. less常用中的内置函数
  • unit
  • darken(颜色变深) lighten(颜色变浅)
.link {
@BG:lightblue;
margin: 20px;
width: 100px;height: 35px;
border: 1px solid #aaa;
background : @BG;
&:hover {
background: draken(@BG,50%);
}
}

.box2 {
    .box1
}

这样box1就有了和box2一样的样式

继承

基于继承也能够实现样式的共用,但是其不能继承后代样式。

.func_center(@W: 100,@H: 100) {
    position: absolute;
    top: 50%;
    left: 50%;
    margin: unit(-@H/2,px) 0 0 unit(-@W/2,px)
}
.box1 {
    border: 1px solid red;
}
.box2 {
    &:extend(.box1)
    @W: 100;
    @H: 200px;
    .func_center(@W,unit(@H,px));
}

循环

.column-4 {
    width: 40%;
}
.column-3 {
    width: 30%;
}
.column-2 {
    width: 20%;
}
.column-1 {
    width: 10%;
}

通过循环可以实现

.loop(@n) when (@n<=4) {
    .loop(@n+1);
    .column-@{n} {
        width:unit(@n*10,%);
    }
}

谢谢款待

小记整理于 2024 / 1 / 1

目录
相关文章
|
23天前
|
前端开发 编译器 开发者
CSS预处理器的优缺点
CSS预处理器的优缺点
|
2月前
|
前端开发 JavaScript
webpack成长指北第7章---webpack的css\less\scss样式打包
webpack成长指北第7章---webpack的css\less\scss样式打包
43 0
|
23天前
|
敏捷开发 人工智能 前端开发
让你爽到飞起的【懒人插件AutoScssStruct4Vue】VSCode根据template的标签目录自动一键生成CSS/SCSS/LESS结构,敏捷开发必备插件!!!
让你爽到飞起的【懒人插件AutoScssStruct4Vue】VSCode根据template的标签目录自动一键生成CSS/SCSS/LESS结构,敏捷开发必备插件!!!
|
23天前
|
前端开发 JavaScript
【实现js和css互通、共享常量参数值】js如何获取CSS/SCSS/LESS的常量、CSS/SCSS/LESS又是如何获取js的值(或者说js是如何主动推送参数给CSS使用的)?
【实现js和css互通、共享常量参数值】js如何获取CSS/SCSS/LESS的常量、CSS/SCSS/LESS又是如何获取js的值(或者说js是如何主动推送参数给CSS使用的)?
|
19小时前
|
前端开发
【专栏:CSS进阶篇】CSS变量与预处理器(Sass/Less)
【4月更文挑战第30天】本文探讨了CSS变量和预处理器Sass的使用,以提升开发效率和代码可维护性。CSS变量通过--*语法定义,可在文档范围内重用,减少冗余,提高可维护性。Sass预处理器引入了变量、嵌套规则、混合和函数等特性,使CSS编写更简洁、可维护。Sass变量使用$符号定义,支持嵌套规则和混合,如定义border-radius混合以减少重复代码。Sass的高级功能使其成为强大工具。
|
2天前
|
前端开发
【专栏】create-react-app 如何使用 less/sass 和 react-css-modules?
【4月更文挑战第29天】本文介绍了在 create-react-app 中集成 less/sass 预处理器和 react-css-modules 的方法。首先,通过 `npm` 安装 less 或 sass 依赖,然后修改 `config-overrides.js` 配置文件以支持 less/sass 编译。接着,详细阐述如何使用 less/sass 编写样式。再者,安装 react-css-modules 并配置 webpack,使能样式模块化。最后,展示了如何结合使用 less/sass 和 react-css-modules,以提升前端开发的效率和代码质量。
|
12天前
|
存储 前端开发 JavaScript
《CSS 简易速速上手小册》第7章:CSS 预处理器与框架(2024 最新版)
《CSS 简易速速上手小册》第7章:CSS 预处理器与框架(2024 最新版)
26 2
|
24天前
|
前端开发 开发者
CSS处理器,也称为CSS预处理器
【4月更文挑战第7天】CSS处理器,也称为CSS预处理器
15 4
|
前端开发 JavaScript 移动开发
CSS 预处理器框架
CSS 预处理器框架 参考博客:为您详细比较三个 CSS 预处理器(框架):Sass、LESS 和 Stylus 可以按照需求来使用别人的代码 1.
1184 0
|
18小时前
|
缓存 移动开发 前端开发
【专栏:HTML与CSS前端技术趋势篇】HTML与CSS在PWA(Progressive Web Apps)中的应用
【4月更文挑战第30天】PWA(Progressive Web Apps)结合现代Web技术,提供接近原生应用的体验。HTML在PWA中构建页面结构和内容,响应式设计、语义化标签、Manifest文件和离线页面的创建都离不开HTML。CSS则用于定制主题样式、实现动画效果、响应式布局和管理字体图标。两者协同工作,保证PWA在不同设备和网络环境下的快速、可靠和一致性体验。随着前端技术进步,HTML与CSS在PWA中的应用将更广泛。