LESS学习和使用

小夏 科技 更新 2024-01-29

我们都知道HTML和CSS不是编程语言,而是标记语言,所以很难像JS那样定义变量、编写方法、实现模块化开发等。 在目前的CSS编写模式中,我们定义了一些常用的样式类名,哪一块HTML需要这个样式,并添加相应的样式类名,所以我们经常会看到一个标签上有很多样式类名,在这种模式下我们必须时刻注意CSS的优先级,避免重叠的样式覆盖。

为了解决CSS的这个困境,CSS预处理和预编译的思想脱颖而出,比较有代表性的有less、sass和stylus。 他们在传统的CSS中增加了大量的新的语法、写作方法、常用函数等,可以使我们的CSS成为像JS一样的编程语言。 本文重点介绍 less 的语法和用法。

写出的少**不能直接在浏览器中运行,需要编译成普通的css**,所以先来学习习常见的少编译方法。

Less 仅适用于现代浏览器(最新版本的 Chrome、Firefox、Safari 和 IE)。 我们不建议在生产中使用 LESS 客户端,因为用户在将 LESS 编译为 CSS 时会看到加载延迟,即使浏览器中的加载延迟不到一秒。

让我们首先介绍我们设置样式的 less 文件注意:rel='stylesheet/less'

然后少介绍JS 文件。

在浏览器中调用有一个好处:可以开启监控模式,只要我们改动少,在一定时间内,浏览器就会重新编译,我们可以看到想要的效果。方法如下:

需要注意的是,浏览器端是用来拉取ajax的。 较少的文件,因此当直接在本地文件系统上打开时(即地址以 file: 开头)或存在跨域时,它们不能直接拉取。 文件较少,导致样式无法生效。因此,一般使用less来做CSS预处理,很少采用引用less的方式,一般将less编译成css,然后引用生成的CSS文件。

// index.HTML 文件 Hello World!

// styles.减少文件@blue:5b83ad;@size:50px;header
如果直接导入较少的文件,则会出现错误,这可以通过尝试从简单的 Web 服务器**(例如 lite-server)开始来解决

npm install -g lite-serverlite-server //to run
这个方法是目前项目中最常用的方式,适用于项目的生产环境,就是将我们的LESS文件编译成一个CSS文件,我们可以直接在项目中导入CSS文件基本步骤:安装>编译、压缩编译>或使用节点**实现批量编译等

将 less 模块安装到全局节点环境中。

npm install less -g
使用命令进行编译。

->看跌期权样式更少的文件编译成样式CSS 文件(如果您没有此 CSS 文件,您将自行创建) LESSC 样式less styles.CSS ->编译的CSS文件是压缩的Lessc Stylesless styles.min.css -x 或 --compress
节点命令编译前后的对比:

// styles.更少文件(预编译) @blue: 5b83ad;@size:50px;header
// styles.CSS 文件(编译后)标头
当我们使用上面的 node 命令进行编译时,我们一次只能编译一个文件,这样如果页面中少了多个文件,每次编译都比较耗时,所以我们可以结合 node 的 fs 文件读写操作编写一组批量编译的 **。

-> 定义编译文件目录和目标导出目录 var dirpath ="./less/", tarpath = "./css/";->导入导入节点中需要用到的模块 var fs = require()"fs"), less = require("less");->读取 dirpath 中的所有文件,检查文件类型,只检查我们存储的文件更少 var ary = files = fsreaddirsync(dirpath); files.foreach(function (file, index) ) ) ->编译目录下的所有文件,并将编译后的结果保存在指定目录下 aryforeach(function (file) ,function (error, output) )
目前常用的编译工具有:考拉(据说是目前最流行的)、*编译( )等。 我不会在本文中详细介绍。 LESS的基本语法基本分为以下几个方面:变量、mixins、嵌套规则、操作、函数、作用域等。

与 JS 中的变量一样,较少的变量定义使用 @ 而不是 var

//->less **link-color: #428bca; @link-color-hover: darken(@link-color, 10%);a } ->编译成css的结果 a a:hover
除了如上所述使用变量存储公共属性值外,我们还可以使用变量来存储公共 URL、选择器等。

//->less **#000; background: url("@/test.png"); selector: box; @bgimg: "../img"; @property: color;
基本混合:您可以轻松地将定义的类 A 引入到另一个类 B 中,从而使类 B 轻松继承类 A 中的所有属性。 我们也可以使用参数进行调用,就像使用函数一样。

->less **public n** ul ->编译为 css 的结果public n** ul
上面的 **,n** ul 是将 public 中设置的 style 属性值复制到自己的样式中。 如果不想在编译后的结果中以 public 的样式输出结果,只需要按如下方式编写即可:

->less **public() n** ul ->编译为 css n** ul 的结果
extend虽然在上面的例子中,n** ul 继承了 public 的样式,但原理是将 ** 复制过来,这样在编译好的 CSS 中仍然会有很多冗余的 CSS**为了避免这种情况,我们可以使用 extend 伪类来实现样式的继承。 与原始选择器共享一组样式,但请确保原始选择器不是括号。

->less **public n** ul ->编译为 css 的结果public, n** ul n** ul
我们可以通过在选择器中嵌套另一个选择器来实现继承,这大大减少了数量并使其看起来更清晰。

//->less **#header .logo }
->编译为 css header header 的结果n**igation #header .logo #header .logo:hover
运算提供加法、减法、乘法和除法运算;我们可以做属性值和颜色的操作,这样我们就可以实现属性值之间的复杂关系。 如果要操作属性值,则 less 中的函数将逐一反映** j**ascript**。

可以涉及任何数字、颜色或变量。 让我们看一组示例:

@base: 5%;@filler: @base * 2;@other: @base + filler;color: #888 / 4;background-color: @base-color + #111;height: 100% / 2 + filler;
Less 提供一系列颜色算术函数。 颜色首先转换为 HSL 颜色空间,然后在通道级别进行操作:

lighten(@color, 10%);// return a color which is 10% *lighter* than @colordarken(@color, 10%);// return a color which is 10% *darker* than @color
Less 提供了一组方便的数学函数,可用于处理某些数值类型的值:

round(1.67); // returns `2`ceil(2.4); // returns `3`floor(2.6); // returns `2`
less 的作用域与其他编程语言非常相似,它首先在本地查找变量或混合模块,如果没有,则在父作用域中查找,直到找到它。

@var: red;#page }#footer
少习学习:少理解少编译少学习习:少的基本语法 一种动态样式的语言。

相似文章

    从“交付时发证”到“验收时发证”,龙海取得了新的突破

    龙海完成 泷城二期 项目联合验收,拉开了 验收后发证 竣工后投产 服务模式的新序幕,全力助推企业提速,刷新 龙海速度 近日,龙海区自然资源局会同区住房和城乡建设局 行政服务中心管委会等相关部门完成了 福建省泷城建筑业 二期 项目竣工联合验收。验收组确定项目竣工验收后,允许项目现场投产,再出具竣工规划...

    海尔的即热式电热水器怎么样?感受散热节能,美观实用

    海尔的即开式热电热水器在质量方面经过了长期的市场验证,得到了用户的广泛好评。其 即时加热 功能显著提高了沐浴的便利性,水温可在瞬间调节到理想状态,满足快节奏生活的需求。超薄的外观设计与内饰自然融合,不占空间,更美观。变频加热和功率可调技术,实现了节能与舒适体验的有效结合。内胆采用金刚石材料,单管加热...

    暖心时刻是雪地里的“警察”

    暖心时刻是雪地里的 警察 警察同志,我的车被困在雪地里 来不来了,你能帮帮我吗?湖关县公安局东井岭派出所接到急求助电话 月日中午,魏某驱车前往长兴村,但由于路面积雪覆盖,路面结冰,魏某在撞向右侧方向盘时控制不住车身侧滑,导致汽车意外掉入路边的深雪中,车辆被困,无法前进。东井岭派出所人民辅警接到报警后...

    ChatGPT预测这些山寨币即将飙升

    加密货币市场正在发生重大变化,最近比特币主导地位的下降表明市场兴趣正在转向山寨币,这可能标志着下一个山寨币季节的开始。自 月 日以来,整个加密货币市值增长了 亿美元,其中比特币占 亿美元。市场势头似乎向山寨币倾斜,总市值增加了亿美元,其中只有亿美元流向了比特币。这一变化显示了 SOL PEPE AX...

    开箱节省6700元!iPhone 14 Plus,仅售2980元!

    数字好东西奖 大家好!今天我给大家带来一个大好消息!苹果iPhone Plus,GB高端版现在仅售元!你没听错,旗舰机皇原价元,现在降价了!超高性价比,绝对值得入手!接下来,让我们仔细看看去年的旗舰机!配置亮点 强大的 A 仿生处理器 无论您是在玩游戏 处理复杂任务还是复习日常应用程序,您都可以轻松...