less详解

拥抱前端开发的未来,掌握Less的魔力!在我们精心撰写的博客文章中,你将发现如何通过学习Less这一强大的CSS预处理器,以更高效、更可维护的方式编写样式代码。无论你是初学者还是经验丰富的开发者,我们的指南将带你逐步了解Less的核心概念和语法。通过实际示例和深入解析,你将从中汲取灵感,提升你的前端技能。加入我们的学习社区,与同行分享知识,一同探索创新、时尚而富有表现力的前端设计世界! 

简介

官网

https://less.bootcss.com/

搭建

安装node.js

安装Less

注意:安装不了直接win+x在管理员的终端窗口安装

cnpm install -g less

lessc -v


        

编译

命令行编译
终端命令:

lessc style.less style.css



直接使用【在服务器运行情况下】
在项目中引入Less文件与解析Less的js文件

<link rel="stylesheet/less" type="text/css" href="style.less"/>
<script src="https://cdn.jsdelivr.net/npm/less@4"></script>


下载服务器:

cnpm install -g http-server


运行服务器:

http-server

基础

作用域、注释、导入

注释
块注释和行注释都可以使用

/* 一个块注释
* style comment! */
@var: red;



 

// 这一行被注释掉了!
@var: white;



导入
使用sass的@import规则并不需要指明被导入文件的全名。你可以省略.less或.less文件后缀

@import "library"; // library.less
@import "typo.css";



作用域
Less 中的作用域与 CSS 中的作用域非常类似。首先在本地查找变量和混合,如果找不到,则从“父”级作用域继承
与 CSS 自定义属性一样,混合(mixin)和变量的定义不必在引用之前事先定义

嵌套

基础使用

#header {
color: black;.logo {
width: 300px;
}
}


:hover伪选择器使用
&表示当前选择器的父级

.box{
width: 100px;
height: 100px;
background-color: gray;
&:hover{
background-color: red;
}
}          


          

变量

声明变量

@width: 1200px;
.container {
width: @width;
}



变量可以先使用在声明

.container {
width: @width;
}
@width: 1200px;



选择器使用变量

@my-selector: banner;
.@{my-selector} {
font-weight: bold;
}



url地址使用变量

@images: "../img";
body {
color: #444;
background: url("@{images}/hello.png");
}



属性当作变量

使用$prop语法可以很容易地将属性当作变量来处理
.widget {
color: #efefef;
background-color: $color;
margin: 15px;
}          

混合

简介
将一个类的属性用于另一个类

.p1 {
color: red;
}
.p2 {
background: #64d9c0;
.p1();
}
.p3 {
background: #DAA520;
.p1;
}



混合添加括号
如果你想创建一个混合,但是你不希望这个混合出现在你的CSS中,在混合定义后面加圆括号

/**不会有效果**/
.my-other-mixin() {
background: white;
}
.class {
.my-other-mixin();
}



混合中使用!important
在混合调用后使用!important关键字将它继承的所有属性标记为!important

.foo (@bg: #f5f5f5; @color: #900) {
background: @bg;
color: @color;
}
.important {
.foo() !important;
}


带参数的混合
混合也可以接受参数,这些参数是混合时传递给选择器块的变量

.border-radius(@radius,@color:red) {
border-radius: @radius;
color: @color
}
#header {
.border-radius(4px,blue);
}
.button {
.border-radius(6px);
}          

运算

加法

@fontSize: 10px;.myclass {
font-size: @fontSize + 10;
color: green;
}


减法

@fontSize: 10px;.myclass {
font-size: @fontSize - 5;
color: green;
}


乘法

@fontSize: 10px;.myclass {
font-size: @fontSize * 2;
color: green;
}



除法【添加括号】

@fontSize: 10px;.myclass {
font-size: (@fontSize / 2);
color: green;
}

进阶

转义

简介
允许你使用任意字符串作为属性或变量值
任何 ~"anything" 形式的内容都将按原样输出

示例

@min768: ~"(min-width: 768px)";
.element {
@media @min768 {
font-size: 1.2rem;
}
}          

函数


percentage 将数值转换为百分比

@width: 0.5;
.class {
width: percentage(@width); // returns `50%`
}



ceil 向上取整

.nav{
width: ceil(199.5); // 200
}



floor 向下取整

.nav{
width: ceil(199.5); // 199
}


        

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[SIGGRAPH2023-best]3D Gaussian Splatting for Real-Time Radiance Field Rendering

标题&#xff1a;3D Gaussian Splatting for Real-Time Radiance Field Rendering 链接&#xff1a;https://arxiv.org/pdf/2308.04079.pdf 本文提出了一种基于3D高斯体进行场景重建的方案&#xff0c;并提供了高效的渲染器实现。其重建精度&#xff0c;训练速度和推理速度均…

矩阵置零00

题目链接 矩阵置零 题目描述 注意点 使用 原地 算法 解答思路 思路是需要存储每一行以及每一列是否有0&#xff0c;因为要尽可能使用更少的空间&#xff0c;且新设置为0的格子不能对后续的判断产生影响&#xff0c;所以要在原有矩阵上存储该信息先用两个参数存储第一行和第…

Umi-OCR :一个完全离线的OCR图片转文字识别软件。

Umi-OCR &#xff1a;一个完全离线的OCR图片转文字识别软件。 开源免费&#xff0c;支持截屏或批量导入图片&#xff0c;并能识别多国语言&#xff0c;合并段落&#xff0c;处理竖排文字。 排除图片中的水印区域&#xff0c;提取干净的文本。 忽略特定区域的文字识别&#x…

功率放大器在生物医疗测试领域研究中的应用

生物医学相关测试&#xff0c;就是运用生物学及工程技术手段来研究和解决生命科学&#xff0c;特别是医学中的有关问题&#xff0c;是关系到提高医疗诊断水平和人类自身健康的重要工程领域。功率放大器作为生物医学领域相关实验平台的重要组成部分&#xff0c;在生物医学领域研…

antd中的form表单数据不更新

antd中的form表单 initialValue导致数据不更新问题 理解 &#xff1a; initialValue就是所谓的defaultValue,只会在第一次赋值的时候改变&#xff0c;却又有一些不同&#xff0c;因为 initialValue又会因其他改动而改变。 解决&#xff1a; form.resetFields();

【FPGA】zynq 单端口RAM 双端口RAM 读写冲突 写写冲突

RAMRAM读写分类RAM原理及实现RAM三种读写模式不变模式写优先读优先 单端口 RAM伪双端口 RAM真双端口 RAM读写冲突和写写冲突读写冲突写写冲突总结&#xff1a; RAM RAM 的英文全称是 Random Access Memory&#xff0c;即随机存取存储器&#xff0c;简称随机存储器&#xff0c;…

记一次线上问题引发的对 Mysql 锁机制分析 | 京东物流技术团队

背景 最近双十一开门红期间组内出现了一次因 Mysql 死锁导致的线上问题&#xff0c;当时从监控可以看到数据库活跃连接数飙升&#xff0c;导致应用层数据库连接池被打满&#xff0c;后续所有请求都因获取不到连接而失败 整体业务代码精简逻辑如下&#xff1a; Transaction p…

阶段七-Day02-SpringMVC

一、Restful请求格式 1. 介绍 Rest(Representational State Transfer&#xff1a;表现层状态转移)是一种软件架构风格&#xff0c;其核心是面向资源的一种设计。何为面向资源&#xff0c;意思是网络上的所有事物都可以抽象为资源&#xff0c;而每个资源都有唯一的资源标识&…

【WIFI】MTK WiFi降sar如何开发

1.Sar 简介 SAR即英语“Specific Absorption Rate”的缩写。SAR值一般指手机产品中电磁波所产生的热能,它是对人体产生影响的衡量数据,单位是W/Kg(瓦/公斤)。 对于测量手机产品的“SAR”,通俗地讲,就是测量手机辐射对人体的影响是否符合标准。国际通用的标准为:以6分钟…

【ARM入门】ARM、SOC、ARM授权 概念篇

什么是ARM ARM前身是Acorn公司设计的第一款微处理器&#xff0c;叫ARM&#xff1a;Acorn RISC Machine ARM公司的名字叫ARM&#xff1a;Advanced RISC Machines ARM内核 包括了寄存器组、指令集、总线、存储器映射规则、中断逻辑和调试组件等 内核是有ARM公司设计并以销售方…

pyCharm新建项目

1.新建界面点击Create New Project。 或点击File->New Project... 2.选择Pure Python后&#xff0c;如图选择路径。 Location的地址一致&#xff0c;点击Create。 3.等待新建成功后&#xff0c;在新建的项目名字右击&#xff0c;如下图可以选择新建文件夹、python包和python…

数据结构笔记:R树

R-trees: a dynamic index structure for spatial searching 1984 1 介绍 R树可以看作B树再高维空间的扩展。它很好的解决了在高维空间搜索等问题。 采用了B树分割空间的思想&#xff0c;并在添加、删除操作时采用合并、分解结点的方法&#xff0c;保证树的平衡性R树就是一棵…