GET LESS:变量、计算、mixin

LESS 是一种 CSS 预处理器,它为前端开发者提供了强大的工具和语法扩展,使得 CSS 在结构、样式和可维护性等方面都得到了极大的提升。其中,变量、计算、mixin 是 LESS 中最为核心的特性,它们可以大幅度提高前端开发的效率和代码质量。本文将对 LESS 的这三个特性进行详细介绍,并提供一些实际的应用举例。

变量

LESS 变量是一种声明了一个标识符并将其与一个特定值关联的语言特性。这意味着我们可以创建一个变量,并在后面的代码中引用它,而不需要在每个实例中替换掉每一个值。这种方式可以避免在代码中重复使用相同的样式,提高了代码的可读性和可维护性。

变量的声明方式为 @variable: value;,其中 @ 表示这是一个变量的声明,variable 是变量名,value 是变量的值。这和在 CSS 中使用变量的方式非常相似,但会使得编写代码更加的方便,如下所示:

---------- --------
------------ -----

-------- -
  ----------------- ----------
  ------ ------------
-

从上面的代码中可以看出,我们声明了两个LESS变量 @bg-color@text-color。在 CSS 中,我们需要在每个应用背景颜色的位置上定义一个颜色值,但是由于 @bg-color 可以被用作特定颜色的变量值,所以我们可以大大减少样式代码的重复,提高可维护性。

计算

CSS 中没有计算的功能。这是 LESS 另外一个重要的特性。使用 LESS,我们可以在带有计算性质的 CSS 属性中加入算术表达式。这对于单元素的响应式宽度计算、 字体大小、布局和位置定位等方面非常有用。使用 LESS 中的计算,可以使得我们的样式表代码变得更加灵活和可扩展。

LESS 中的计算符号如下:

  • +: 加法
  • -: 减法
  • *: 乘法
  • /: 除法
  • %: 模数

举个例子:

------- ------

------- -
  ------ ------- - ---
-

----- -
  ------ ------- - ----
-

上述代码中的 #header 选择器在继承其基本的 300px 宽度基础上,将其扩大了一倍。相应地,#menu 选择器在基础宽度上增加了50px 给 .width 使用。

Mixin

Mixin 这个词的中文翻译是“混入”,它是 LESS 的复用特性。Mixin 让我们可以扩展和复用样式,就像通过面向对象的方式在 JavaScript 或其他语言中复用代码一样。Mixin 是一段函数代码,允许我们定义一组通用的 CSS 样式,在需要时重复使用,而不需要在样式表的每个元素中都写一遍。通过允许变量、参数和条件语句的使用,Mixin 还可以编写高度动态的通用样式。Mixin 是 LESS 中最强大和最重要的特性之一,并已 成为 HTML/CSS 开发中的标准。

Mixin 的语法是以 .# 开头,后跟一组花括号,而括号中定义了 CSS 样式属性。在定义 Mixin 时,我们可以传入变量,为了更好的说明,下面是一个详情的例子:

------------------------- ------ ------------ ------ -
  ------- --------
  ----------- ------------
-

----------- -
  ----------------------- -------
-

上面代码中我们定义了一个 Mixin,为段落内容设置高度与上边距,后在样式中,将设置断言内容为特定值。如果 .set-para-height 语句在多个样式中使用,则可以异动共用代码运用,提高代码的可重用性。

总结

变量、计算、mixin 是 LESS 中最为核心的三个特性。LESS 非常容易学习,可以在编写更少的样式代码的同时,提高代码的可读性和可维护性。此外, LESS 在设计上允许我们轻松地使用修改器类(如 hover)、按屏幕尺寸或模式化的 CSS 偏差,这为我们在开发各种类型的应用程序时提供了非常强大的工具。 LESS 的学习和使用有助于提高前端的效率、代码的可读性和可维护性。随着对这些特性和 LESS 库的深入理解,我们可以编写出更高效,更灵活和更维护的样式表,为用户带来更好的 Web 使用体验。

参考文献

  1. http://lesscss.org/
  2. https://developers.google.com/web/fundamentals/design-and-ui/css-preprocessors
  3. https://www.toptal.com/front-end/css-preprocessors-css-less-sass-stylus

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/65a7be01add4f0e0ff0e2e9b


猜你喜欢

  • SSE 与 WebSocket 性能对比分析

    简介 SSE(Server-Sent Events)和 WebSocket 都是前端开发中常用的实现服务器与客户端实时双向通信的技术。SSE 基于 HTTP,而 WebSocket 则是一种独立的协议...

    9 个月前
  • 如何使用 Cypress 测试自动化进行游戏测试

    如何使用 Cypress 测试自动化进行游戏测试 测试自动化是任何系统或应用程序测试中的重要步骤,尤其对游戏测试来说更是绕不开的难题。近年来,Cypress 库在前端自动化测试中一跃成为了当红明星,它...

    9 个月前
  • 如何使用 Node.js 实现基础的机器学习功能

    机器学习是当今最热门的技术领域之一,它是关于如何构建计算机程序,让它们利用经验来提高自己的性能的研究领域。通过机器学习,可以让计算机自动完成一些繁琐的任务,如图像识别、语音识别、自然语言处理等,并且不...

    9 个月前
  • Mongoose Schema 设计经验分享

    Mongoose 是 Node.js 里面非常流行的数据建模库,它简化了对 MongoDB 数据库的操作。在使用 Mongoose 进行开发的时候,Schema 是非常重要的一环,好的 Schema ...

    9 个月前
  • 实现响应式布局的技巧:Flexbox + media query

    响应式布局是现代Web开发中非常重要的一部分。为了适应不同设备的屏幕大小,我们需要设计出能够自动适应屏幕的布局。实现响应式布局的技巧有很多,但在这篇文章中我们会介绍一种广为使用的方法:Flexbox ...

    9 个月前
  • Webpack 实战教程:使用 Webpack 优化 React 应用

    随着 React 技术的普及,前端应用的体量逐渐变得越来越大,模块也越来越多,这时候我们就需要使用 Webpack 这一工具来帮助我们进行模块化的处理。 本篇文章将会介绍 Webpack 的使用方法,...

    9 个月前
  • ECMAScript 2020 新特性:动态 import 提升页面的性能和可维护性

    伴随着前端技术的不断发展,ECMAScript(简称 ES)也在不断地得到更新和完善。2020 年的 ECMAScript 规范中,新增了许多值得关注的特性,其中一个特别有用的特性是动态 import...

    9 个月前
  • Promise.then() 方法与 Promise.catch() 方法的使用注意事项

    介绍 Promise 是 JavaScript 中一种处理异步操作的方式,它可以更好地处理回调地狱的问题。Promise.then() 方法和 Promise.catch() 方法是 Promise ...

    9 个月前
  • MongoDB Limits and Skip 太大的问题及索引优化

    介绍 MongoDB 是一种使用文档存储方式的 NoSQL 数据库,其数据存储结构为 Bson。MongoDB 在处理诸如分布式集群、高负载和大规模读写等方面有着出色的性能表现。

    9 个月前
  • 在 ES10 中使用 Optional chaining 让代码更优美

    在日常前端开发中,经常需要进行数据的操作和访问。然而,当访问的对象中含有未定义的属性或方法时,就会导致代码出现错误。ES10 中引入了 Optional chaining 运算符,可以很好地解决这个问...

    9 个月前
  • 如何在 React Native 应用程序中使用 Enzyme 测试视图 props?

    React Native 给开发者提供了一种简单、跨平台的方式来构建移动应用程序,但是如何确保我们的应用程序在不同的移动设备上运行正常呢?这时候,我们需要使用一些测试工具来帮助我们验证应用程序的正确性...

    9 个月前
  • Hapi 实现 API 文档发布和管理工具

    在进行前端开发时,经常需要通过后端接口获取数据或者将数据传输到后端。为了确保数据的安全和准确性,通常需要对接口进行文档化管理。Hapi 是 Node.js 的一个开源框架,提供了一种简单而功能强大的方...

    9 个月前
  • AngularJS 使用 gulp-tinypng 转化图片

    前言 在前端开发中,图片加载速度是影响网站性能的一个关键因素。因此,对于图片进行优化是非常重要的。TinyPNG 是一个非常流行的在线图片压缩工具,使用它可以快速地将图片进行压缩,减少图片大小从而加速...

    9 个月前
  • SASS 中的!important 如何正确使用

    在前端开发中,CSS 的 !important 相信大家都不陌生,它可以覆盖其它样式属性的设置,但是在使用时需要谨慎,不恰当的使用会导致一些问题。而在 SASS 中,我们也可以使用 !importan...

    9 个月前
  • Deno 中如何实现数据可视化?

    什么是 Deno? Deno 是一个用 TypeScript 和 Rust 构建的运行时环境,由于其出色的安全性、模块化和可调试能力,现在越来越受到开发者的喜爱。 与 Node.js 不同的是,Den...

    9 个月前
  • Sequelize 中连接已存在的 MySQL 数据库出现错误的解决办法

    前言 Sequelize 是一个 Node.js 中 ORM 库,它支持多种数据库,包括 MySQL、PostgreSQL、SQLite 和 MSSQL 等等。Sequelize 能够很好地帮助我们进...

    9 个月前
  • PM2 监控 Node.js 进程异常退出的处理方案

    在实际的 Node.js 项目中,我们常常会遇到进程异常退出的情况,这可能是由各种原因导致的,例如代码错误、依赖缺失、资源耗尽等等。如果没有一个良好的处理方案,这些异常退出往往会造成严重的影响,例如数...

    9 个月前
  • Redux 与 VueX 中间件的使用及原理深入剖析

    在前端应用程序中,数据管理是一个重要的任务,它通常由状态管理库来处理。Redux 和 VueX 都是常见的状态管理库。它们具有相似的原理和使用方法,但是它们的中间件机制略有不同。

    9 个月前
  • 使用 ES7 的 Exponentiation Operator 实现幂运算

    在 JavaScript 的开发中,有时需要进行幂运算(即指数运算),就是将一个数的某个次方计算出结果。在 ES7 中,增加了一个幂运算操作符——Exponentiation Operator,它可以...

    9 个月前
  • 使用 ECMAScript 2021 实现 JavaScript 中的排序算法:insertion-sort

    算法概述 插入排序(Insertion Sort)是一种简单直观的排序算法,它的基本思想是将一个待排序的数列分为已排序和未排序两部分,然后一步步将未排序的元素插入到已排序的正确位置中,直到全部元素都插...

    9 个月前

相关推荐

    暂无文章