IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> less基础知识 -> 正文阅读

[JavaScript知识库]less基础知识

一、概览

  • Less (Leaner Style Sheets 的缩写) 是一门向后兼容的 CSS 扩展语言。
  • 因为 Less 和 CSS 非常像,因此很容易学习。而且 Less 仅对 CSS 语言增加了少许方便的扩展。
  • less在浏览器端使用的时候,借助less.js文件进行编译,编译之后其实就是css文件。
  • 引入less文件
  • <link rel="stylesheet/less" type="text/css" href="./css/index.less"/>
  • 引入less的编译文件
  • <script src="js/less.min.js"></script>

二、变量

  • less声明变量使用的是@
  • 变量存在全局变量和局部变量:变量写在样式类外部叫全局变量;变量写在样式里面叫局部变量。
@width:100px;
@height:100px;
#btn{
 @color:red;
 width: @width;
 height: @height;
 color: @color;
}

在这里插入图片描述

@width:100px;
@height:100px;
#btn{
 @color:red;
 width: @width;
 height: @height;
 color: @color;
}
#btn1{
 width: @width - 20;
 height: @height + 20;
 background-color: @color;//NameError: variable @color is undefined
}

在这里插入图片描述

三、运算

  • 算术运算符 +、-、*、/ 可以对任何数字、颜色或变量进行运算。如果可能的话,算术运算符在加、减或比较之前会进行单位换算。计算的结果以最左侧操作数的单位类型为准。如果单位换算无效或失去意义,则忽略单位。无效的单位换算例如:px 到 cm 或 rad 到 % 的转换。
@width:100px;
@height:100px;
#btn{
 @color:red;
 width: @width;
 height: @height;
 color: @color;
}
#btn1{
 width: @width - 20;
 height: @height + 20;
}

在这里插入图片描述

@width:100px;
@height:100px;
@w:5cm+10mm;
#btn1{
 width: @w - 20;
 height: @height + 20;
}

在这里插入图片描述

  • 乘法和除法不作转换。因为这两种运算在大多数情况下都没有意义,一个长度乘以一个长度就得到一个区域,而 CSS 是不支持指定区域的。Less 将按数字的原样进行操作,并将为计算结果指定明确的单位类型。
  • 可以对颜色进行算术运算。
#btn1{
 width: @w;
 height: @height + 20;
 background-color: #223344+#111;
}

在这里插入图片描述

四、混合

  • 混合(Mixin)是一种将一组属性从一个规则集包含(或混入)到另一个规则集的方法。
  • 类似提取方法,可以进行默认值,可以进行传递参数。
@width:100px;
@height:100px;
@w:5cm+10mm;
#btn{
 @color:red;
 width: @width;
 height: @height;
 color: @color;
 .borderradius;
}
#btn1{
 width: @w;
 height: @height + 20;
 .borderradius;
}
.borderradius{
 border-radius: 50px;
}

在这里插入图片描述

@width:100px;
@height:100px;
@w:5cm+10mm;
#btn{
 @color:red;
 width: @width;
 height: @height;
 color: @color;
 .borderradius;
}
#btn1{
 width: @w;
 height: @height + 20;
 .borderradius(20px);
}
.borderradius(@rad:50px){
 border-radius: @rad;
}

在这里插入图片描述

五、嵌套

ul{
 margin: 0;
 padding: 0;
 li{
   line-height: 30px;
   padding-left: 10px;
   list-style: none;
   a{
     color: #000;
     text-decoration: none;
   }
 }
}
  • &—指代当前元素 (& 表示当前选择器的父级)
ul{
 margin: 0;
 padding: 0;
 li{
   line-height: 30px;
   padding-left: 10px;
   list-style: none;
   a{
     color: #000;
     text-decoration: none;
   }
   &:hover{
     border-bottom: 1px solid red;
   }
 }
}

@规则嵌套和冒泡

  • @ 规则(例如 @media 或 @supports)可以与选择器以相同的方式进行嵌套。@ 规则会被放在前面,同一规则集中的其它元素的相对顺序保持不变。这叫做冒泡(bubbling)。
body{
 background-color: #fff;
 @media (min-width: 1280px) {
   background-color: red;
   @media (max-width: 768px) {
     background-color: blue;
   }
 }
 @media (max-width: 768px) {
   background-color: orange;
 }
}

在这里插入图片描述

六、转义

  • 转义(Escaping)允许你使用任意字符串作为属性或变量值。任何 ~“anything” 或 ~‘anything’ 形式的内容都将按原样输出,除非 interpolation。
//转义
@bgimg:~'url(./image/1.png)';
body{
 background-image: @bgimg;
}

七、函数

  • Less 内置了多种函数用于转换颜色、处理字符串、算术运算等

命名空间和访问符

  • (不要和 CSS @namespace 或 namespace selectors 混淆了)。
  • 有时,出于组织结构或仅仅是为了提供一些封装的目的,你希望对混合(mixins)进行分组。你可以用 Less 更直观地实现这一需求。假设你希望将一些混合(mixins)和变量置于 #bundle 之下,为了以后方便重用或分发。
  • 命名空间:类似代码封装,将混合封装到一个模块,使用的时候点出来就行。
#boundle(){
 .boxshow(@sh:~'0 0 1px #000'){
   box-shadow:@sh;
 }
 .boxrad(@rad:10px){
   border-radius:@rad;
 }
}
button{
 width:100px;
 height:30px;
 #boundle.boxshow(~'3px 5px 10px #000');
}

在这里插入图片描述

八、映射

  • 还可以将混合(mixins)和规则集(rulesets)作为一组值的映射(map)使用。
  • 类似键值对取值。
#boun(){
 primary:'green';
 danger:red;
}
#btn{
 background-color: #boun[danger];
}

在这里插入图片描述

九、导入

  • “导入”的工作方式和你预期的一样。你可以导入一个 .less 文件,此文件中的所有变量就可以全部使用了。如果导入的文件是 .less 扩展名,则可以将扩展名省略掉。
@import "library"; // library.less
@import "typo.css";
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-25 10:29:45  更:2022-01-25 10:31:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 13:20:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码