Less基础语法学习

less和sass的区别 Less:使用 “@” 符号定义变量,例如@color: blue;。Sass: 使用“”符号定义变量,例如”符号定义变量,例如符号定义变量,例如color:blue;。 阅读详情

Less(Leaner Style Sheet)是一门向后兼容的CSS扩展语言

1 变量

less可以定义变量,在编译时自动将变量名替换为用户定义的值。使用@定义和使用变量,变量声明可以在开头,也可以在使用变量后,不一定需要预先声明:

// 变量
@link-color: #428bca;  //sea blue

// 用法
.link {
  color: @link-color;
}
.link {
  color: @link-color;
}

// 变量
@link-color: #428bca;  //sea blue

除了在值中使用变量,在选择器名称、属性名、URL和@import语句,甚至是其他变量名中都能使用变量:

@mySelector: banner;

.@{mySelector} {
  font-weight: bold;
}
@images: "../img";

body {
  color: #444;
  background: url("@{images}/white-sand.png");
}
@themes: "../../src/themes";

@import "@{themes}/tidal-wave.less";  //导入less文件
@property: color;

.widget {
  @{property}: #0ee;
  background-@{property}: #999;
}
@fnord:  "I am fnord.";
@var:    "fnord";
content: @@var;

//将会编译为
content: "I am fnord.";

2 嵌套

less文件可以嵌套样式,使代码更符合html结构,更加简洁

#header {
  color: black;
}
#header .navigation {
  font-size: 12px;
}
#header .logo {
  width: 300px;
}

可以用以下形式编写:

#header {
  color: black;
  .navigation {
    font-size: 12px;
  }
  .logo {
    width: 300px;
  }
}

3 混合

less可以混合样式(类选择器或id选择器):

.a, #b {
  color: red;
}
.mixin-class {
  .a();
}
.mixin-id {
  #b();
}

编译为:

.a, #b {
  color: red;
}
.mixin-class {
  color: red;
}
.mixin-id {
  color: red;
}

如果你不想输出混合集,可以在定义时加上一个括号:

.my-mixin {
  color: black;
}
.my-other-mixin() {
  background: white;
}
.class {
  .my-mixin;
  .my-other-mixin;
}

编译为:

.my-mixin {
  color: black;
}
.class {
  color: black;
  background: white;
}

混合集不仅可以包含各种属性,还可以包含各种选择器:

.my-hover-mixin() {
  &:hover {       // &表示父选择器
    border: 1px solid red;
  }
}
button {
  .my-hover-mixin();
}

编译为:

button:hover {
  border: 1px solid red;
}

可以在混合集中嵌套多层id和class选择器,在使用时进行指定,相当于命名空间:

#my-library {
  .my-mixin() {
    color: black;
  }
}
// 可以这样调用
.class {
  #my-library > .my-mixin();
}

下面四种写法效果一样:

#outer > .inner;
#outer > .inner();
#outer.inner;
#outer.inner();

4 函数

可以在混合集中设置参数,变为函数,在它进行混入操作时,会将变量传递给选择器代码块:

.border-radius(@radius) {
  -webkit-border-radius: @radius;
     -moz-border-radius: @radius;
          border-radius: @radius;
}

#header {
  .border-radius(4px);
}
.button {
  .border-radius(6px);
}

甚至可以设置参数的默认值:

.border-radius(@radius: 5px) {
  -webkit-border-radius: @radius;
     -moz-border-radius: @radius;
          border-radius: @radius;
}

#header {
  .border-radius;
}

如果带有多个参数,可用;分隔:

.mixin(@color) {
  color-1: @color;
}
.mixin(@color; @padding: 2) {
  color-2: @color;
  padding-2: @padding;
}

.some .selector div {
  .mixin(#008000);
}

编译为:

.some .selector div {
  color-1: #008000;
  color-2: #008000;
  padding-2: 2;
}

参数可以为命名参数:

.mixin(@color: black; @margin: 10px; @padding: 20px) {
  color: @color;
  margin: @margin;
  padding: @padding;
}

.class2 {
  .mixin(#efca44; @padding: 40px);
}

编译为:

.class2 {
  color: #efca44;
  margin: 10px;
  padding: 40px;
}

你可以通过传递给混合集的参数,进行模式匹配,改变混合集的行为:

.mixin(dark; @color) {
  color: darken(@color, 10%);
}
.mixin(light; @color) {
  color: lighten(@color, 10%);
}
.mixin(@_; @color) {   //@_为任何值
  display: block;
}

@switch: light;

.class {
  .mixin(@switch; #888);
}

上述进行模式匹配,只有第二个和第三个模式匹配成功,编译为:

.class {
  color: #a2a2a2;
  display: block;
}

可以将混合用作函数使用,所有定义在一个mixin中的变量都是可见的,还可以用于调用它的作用域中(除非调用它的作用域定义了同名变量)

.average(@x, @y) {
  @average: ((@x + @y) / 2);
}

div {
  .average(16px, 50px); // "call" the mixin
  padding: @average;    // use its "return" value
}

编译为:

div {
  padding: 33px;
}

5 扩展(继承)

扩展与混合相似,但混合编译后的css相当于新增一块相同的样式内容,而扩展是在选择器的后面增加了一个你要引用的选择器名,所以扩展相比要节省更多的资源。

扩展有两种语法,效果一样,可以放置在选择器最后面(一定要在最后),也可以放置在规则集中:

.a:extend(.b) {}

// 上面的代码块与下面这个做一样的事情
.a {
  &:extend(.b);
}

示例:

nav ul {
  &:extend(.inline);
  background: blue;
}

.inline {
  color: red;
}

ul继承了类inline的属性,编译为:

nav ul {
  background: blue;
}

.inline,
nav ul {
  color: red;
}

如果要继承多个类,用逗号分隔:

.e:extend(.f, .g) {}

可以嵌套选择器中的扩展:

.bucket {
  tr { 
    color: blue;
  }
}
.some-class:extend(.bucket tr) {} 

编译为:

.bucket tr,
.some-class {
  color: blue;
}

扩展为精确匹配,它不管选择器是否以星号开头:

*.class {
  color: blue;
}
.noStar:extend(.class) {} // 不会匹配*.class选择器

6 导入

less文件可以导入其他less或css文件,将其包含进来

@import "foo";      // foo.less is imported
@import "foo.less"; // foo.less is imported
@import "foo.php";  // foo.php imported as a less file
@import "foo.css";  // statement left in place, as-is

除此之外less还支持循环、合并、条件以及众多内置函数功能,详情可见官网

GBT 27930-2015/2023国标充电协议A类CAN报文ID说明 国标充电CAN的ID,仅供学习参考。 阅读详情

相关推荐

图解说明JLink驱动与目标板电源匹配的关键细节

深入讲解JLink驱动安装及使用过程中,如何正确匹配目标板电源,避免常见通信故障。通过图解方式清晰展示关键连接细节,确保调试稳定可靠,是嵌入式开发中不可或缺的实战经验分享。

weixin_42173218的博客 431

less和sass复用样式的方式

less可以直接通过class类名来复用,带括号时则不生成该class。sass复用可以通过混入。

qq_42372534的博客 916

嵌入式SD/TF卡通用协议-SDIO协议

为了驱动SD卡,首先的第一步就是观察SD卡引脚接线情况,通常我们在画原理图时,都是使用的SD卡卡槽与MCU进行接线。SD卡可以使用SDIO协议和SPI协议进行通信,这里我们主要介绍SDIO协议。下图中的TF卡只是容量小一点的SD卡。以F1C100S为例,接线图如下所示:我们发现上图中的TF卡使用的协议为SDIO协议,主要有4根数据线,1根命令线,1根时钟线组合而成。为了驱动这个SD/TF卡我们就需要去了解SDIO协议的时序。

qq_1033275663的博客 3052

如何在不同文件中使用less声明的全局公共变量

1:假设我们有一个全局的less变量文件’./style/variable.less’文件 如果想要在组件样式中使用这些文件,我们需要引入这些文件,但是这样做会带来很多问题,代码冗余,不好维护。 我们迫切需要一种全新的更优雅的方法——sass-resources-loader 该加载器将 less资源自动导入每个所需的 less 模块。 因此,您可以在所有 less 样式中使用共享变量和mixi...

qq_26880461的博客 2662

Playwright Java环境配置避坑指南:浏览器路径、类加载与离线部署

Playwright作为现代端到端测试框架,其Java SDK突破了传统Selenium的Driver管理模式,将Chromium/Firefox/WebKit内核视为可编程运行时资源。其核心原理在于SDK与浏览器二进制分离——Maven仅管理Java字节码,而浏览器需独立下载、校验与沙箱加载。这一设计带来显著技术价值:跨平台一致性、进程隔离安全性及多浏览器并行能力;典型应用场景涵盖Spring Boot集成测试、金融级离线CI/CD、Kubernetes容器化部署及Air-Gapped封闭环境。然而,因J

weixin_32956805的博客 677

ChatGPT Windows桌面版:从安全下载到高效配置的全流程指南

WebView封装技术是将网页应用转化为独立桌面程序的核心方法,它通过嵌入浏览器内核实现跨平台功能复用。其原理在于利用Electron或Tauri等框架,将Web内容打包进原生应用外壳,同时注入系统级API调用能力。这项技术的工程价值在于显著提升了Web应用的系统集成度和用户体验,使其能够支持全局快捷键、独立进程和本地数据存储等原生特性。在AI助手深度集成工作流的应用场景中,这种封装模式解决了浏览器多标签页切换繁琐、会话管理不便等痛点。本文以ChatGPT桌面客户端为例,详细解析了基于开源项目的安全下载路径

weixin_30437847的博客 484

less如何注册全局的属性

在web项目的开发中less的使用比较的多 那么怎么定义less的全局属性 例如: 同文件中 /* style/config.less */ @themeColor: #f37b1d; /* 同文件中 */ .item.active { color: @themeColor; border-color: @themeColor; } 非同文件中 /* 某个不知名的的vue文件 */ .item.active { color: @themeColor; border-co

厚渡 5941

学习STM32的流体水位传感器

引言: 流体水位传感器是一种常用于测量液体水位的设备,广泛应用于水位监测、液位控制和流量计量等领域。STM32是一款功能强大的单片机,具有丰富的外设和灵活的编程能力,非常适合用于流体水位传感器的开发。本文将介绍如何使用STM32开发板与流体水位传感器进行连接和通信,并通过编写代码实现水位的测量和显示。五、总结: 通过以上的代码示例,我们可以实现使用STM32开发板与流体水位传感器进行连接和通信的功能。三、编写代码: 以下是使用STM32CubeIDE编写的示例代码,实现了读取流体水位传感器的功能。

xiaoalla的博客 740

less的一些公用方法

less的一些公用方法

imkaifan的博客 807

【RT-DETR有效改进】利用EMAttention加深网络深度提高模型特征提取能力(特征选择模块)

本文给大家带来的改进机制是EMAttention注意力机制,它的核心思想是,重塑部分通道到批次维度,并将通道维度分组为多个子特征,以保留每个通道的信息并减少计算开销。EMA模块通过编码全局信息来重新校准每个并行分支中的通道权重,并通过跨维度交互来捕获像素级别的关系。本文改进是基于ResNet18、ResNet34、ResNet50、ResNet101,文章中均以提供,本专栏的改进内容全网独一份深度改进RT-DETR非那种无效Neck部分改进,

Snu77的博客 3170

iOS远程真机之WebDriverAgent 天坑记

一、WDA安装依赖报错:       这个东西神坑,我搞了一天都没找到解决方案,最后在appium讨论中发现,       解决方案是:       先定位到WebDriverAgent 所在路径$ cd /Users/XXXX/git/WebDriverAgent        然后运行:mkdir -p Resources/WebDriverAgent.bundle sh ./Scripts/b

甫式人生 7316

css 选择器获取同名class 第一个或者最后一个元素(区分class)

在子元素有多个不同的class的情况下,父元素获取同一个class的子元素的第一个或者最后一个元素。

qq_36904182的博客 1万+

零基础学习simulink-- 四旋翼和六旋翼无人机的建模与动力学分析

通过上述代码实现,您可以逐步创建和搭建一个多旋翼无人机(如四旋翼、六旋翼)的动力学模型,并结合自适应控制器进行仿真。该模型不仅考虑了无人机的基本动力学行为,还引入了空气阻力、螺旋桨之间的相互作用以及气流干扰等复杂效应,使得仿真结果更加接近实际情况。Simulink 提供了强大的建模和仿真工具,使得控制系统工程师能够快速构建复杂的控制算法,并将其应用于实际工程中。多旋翼无人机动力学建模:建立四旋翼和六旋翼无人机的动力学模型,包括平移运动和旋转运动方程。升力和扭矩模型。

amy_mhd的博客 388

Less语法学习

Less基础语法学习 1.介绍 ​ 之前写CSS样式的时候感觉毫无逻辑可言,而且不像后端代码那样支持变量和函数。而Less语言作为CSS的扩展,不仅与CSS向后兼容,而且它添加的其他功能都使用现有的CSS语法。尤其是配合上rem、媒体查询可以实现移动web的适配工作,而且可维护性非常好。 2.配置 ​ 用npm install less --g 安装less完成后,这里最好使用webstrom开发工具配置一下less,因为浏览器是不认识less的最终还是要将less编译成css,这里不做过多

qq_36050563的博客 246

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

less学习语法

1.rgb/rgba/translate/rotate/scale2.非常好用的css函数: css中可以自定义属性:在一个大型的网页项目中,我们css使用到的某几种属性值往往是特定的 4.Less语法三:嵌套 选择器的嵌套: &:表示父级可以用于伪类、伪元素:在Less中,算术运算符+-*/可以对任何数字、颜色或变量进行运算。在原来的CSS编写过程中,多个选择器中可能有大量相同的代码 混合是一种将一组属性从一个规则集(或混入)到另一个规则集的方法。 注意:混入在没有参数的情况下,小括号可以省

a_xia_o的博客 3014

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

less学习之基本语法

目录学习源Less为什么出现?了解LessLess注释符编译模式延时加载特性变量变量用作属性名变量用作类名变量用作链接定义多个变量混合混合(带选择器)混合(带参数)混合(多个参数)arguments变量匹配模式得到混合变量的返回值嵌套规则父元素选择器&改变 & 顺序及生成所有可能的选择器列表运算命名空间引入Less函数 学习源 博主:王佳斌 https://blog.csdn....

爱喝水的qdy的博客 359

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Less 语法学习

Less 语法学习(1)Less 支持CSS 所有的语法(2)Less 支持多行/单行注释,但CSS 只支持多行注释,所以Less 中的单行注释不会被编译到CSS 文件(3)Less 有变量(Variable)的概念声明变量: @变量名: 值;使用变量: 选择器{ 样式: @变量名; }变量值可以是任意合法的样式值。(4)Less 可以执行样式/变量的计算加、减、乘、除、取余(5)Less 支持样...

一个前端初学者的博客 490

Less学习-语法详解

一、Less是什么 -less(less is more, than css) - 少即是多,比css -less类似于js的jQuery,less css的一种动态语言,属于css预处理语言的一种,它使用类似css的语法,为css的赋予了动态语言的特性,如变量、继承、运算、函数等,更方便css的编写和维护。 -less css可以在多种语言、环境中使用,包括浏览器端、桌面客户端、服务端。

qq_21583681的博客 767

less语法学习

less语法学习 1 变量 LESS 允许开发者自定义变量,变量可以在全局样式中使用,变量使得样式修改起来更加简单。 /*-----------------变量-----------------*/@mainColor:#E93223; body{ color: @mainColor; } 2 Mixin****混入 Mixin(混入)功能对用开发者来说并不陌生,很多动态语言都支持 Mixin(混...

SanPhantom的博客 2416

LESS语法学习笔记

css的扩展

小丞同学 720

less学习:基础语法总结

一、 less是什么 Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量、混合(mixin)、函数等功能,让 CSS 更易维护、方便制作主题、扩充。 注意1):less使用.less作为文件后缀。通过第三方工具,可以一键或者实时编译成对应的css文件。也就是说:实际项目中,我们编辑的是.less文件,但引用时依旧像往常一样引用.css文件。通过第三方工具(例...

weixin_30702887的博客 219

通过LESS的基础语法的学习,提高web前端开发的效果

LESS基础语法 我们一起来学习一下LESS的基础语法,LESS的基础语法基本上分为以下几个方面:变量、混合(Mixins)、嵌套规则、运算、函数、作用域等。这些基础语法需要我们先牢牢的掌握住,然后才可以灵活的在项目中进行实战。 变量 和JS中的变量一样,只是LESS的变量定义不是使用VAR而是使用@。 //->LESS代码 @link-color: #428bca; @link-color...

monkey_fgj的博客 226

less学习笔记:基础语法

基础语法//注释 //这条注释不会被编译到css /*这条注释会被编译到css*/ //一 变量 @backcolor:#000; @font:14px; .a{ background-color: @backcolor; font-size: @font - 1; } //调用(类似函数) .a{ height: 100px; } .b{ width: 100px;

神百事的博客 335

LESS的学习

文章目录LESS的学习一、LESS的简介二、Less中的语法1、变量值变量选择器变量属性变量url变量声明变量变量的运算变量作用域用变量去定义变量2、嵌套3、混合无参数混合默认参数混合混合的匹配模式混合的命名参数4、继承5、导入6、其他注释避免编译迭代 LESS的学习 一、LESS的简介 less是一种动态样式语言,属于css预处理器的范畴,它扩展了css语言,增加了变量,Mixin,函数等特性...

喜欢小让的博客 813

移动端web学习07:rem + flexible.js + less语法

rem单位 相对单位 rem单位是相对于HTML标签的字号计算结果 1rem = 1HTML字号大小 查看设计稿宽度 → 确定参考设备宽度(视口宽度) → 确定基准根字号(1/10视口宽度) rem单位的尺寸 = px单位数值 / 基准根字号 flexible.js flexible.js是手淘开发出的一个用来适配移动端的js框架。 核心原理就是根据不同的视口宽度给网页中html根节点设置不同的font-size。 引入方法 Less 在...

玉安_ZhangDe的博客 239
上一篇: 关键路径JS实现
下一篇: windows平台react-native搭建开发环境踩坑记录(could not connect to development server)
PAT-python-zjw
博客等级 码龄10年 381粉丝 408原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值