移动WEB开发之rem布局--less基础

news2024/9/23 11:23:37

维护 css 的弊端

CSS 是一门非程序式语言,没有变量、函数、SCOPE(作用域)等概念。

CSS 需要书写大量看似没有逻辑的代码,CSS 冗余度是比较高的。

不方便维护及扩展,不利于复用。

CSS 没有很好的计算能力

非前端开发工程师来讲,往往会因为缺少 CSS 编写经验而很难写出组织良好且易于维护的 CSS 代码项目。

代码重复,没有计算能力 

Less 介绍

Less (Leaner Style Sheets 的缩写) 是一门 CSS 扩展语言,也成为CSS预处理器。

做为 CSS 的一种形式的扩展,它并没有减少 CSS 的功能,而是在现有的 CSS 语法上,为CSS加入程序式语言的 特性。

它在 CSS 的语法基础之上,引入了变量,Mixin(混入),运算以及函数等功能,大大简化了 CSS 的编写,并且 降低了 CSS 的维护成本,就像它的名称所说的那样,Less 可以让我们用更少的代码做更多的事情。

Less中文网址: Less 中文网 (lesscss.com.cn)

常见的CSS预处理器:Sass、Less、Stylus 一句话:Less 是一门 CSS 预处理语言,它扩展了CSS的动态特性

Less 安装(注意如果使用vscode无需安装less)

① 安装nodejs,可选择版本(8.0),网址:http://nodejs.cn/download/

② 检查是否安装成功,使用cmd命令(win10 是 window +r 打开 运行输入cmd) --- 输入“ node –v ”查看版本即可

③ 基于nodejs在线安装Less,使用cmd命令“ npm install -g less ”即可

④ 检查是否安装成功,使用cmd命令“ lessc -v ”查看版本即可

Less 使用

我们首先新建一个后缀名为less的文件, 在这个less文件里面书写less语句。

Less 变量

Less 编译

Less 嵌套

Less 运算

Less 变量

变量是指没有固定的值,可以改变的。因为我们CSS中的一些颜色和数值等经常使用。

@变量名:值;

1. 变量命名规范

必须有@为前缀

不能包含特殊字符

不能以数字开头

大小写敏感

@color: pink;

这里注意的是 变量名:值; 

2. 变量使用规范

//直接使用
body{
 color:@color;
}
a:hover{
 color:@color;
}

  Less 编译

本质上,Less 包含一套自定义的语法及一个解析器,用户根据这些语法定义自己的样式规则,这些规则 最终会通过解析器,编译生成对应的 CSS 文件。

所以,我们需要把我们的 less文件,编译生成为css文件,这样我们的html页面才能使用。

vocode Less 插件

Easy LESS 插件用来把less文件编译为 css文件 安装完毕插件,重新加载下 vscode。 只要保存一下Less文件,会自动生成CSS 文件。

页面引入less文件是失败的,我们要转义成css文件,使用easy less 保存less文件,当前页面下会自动生成对应的css文件 

 Less 嵌套

我们经常用到选择器的嵌套

#header .logo {
 width: 300px;
}

Less 嵌套写法

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

 如果有伪类、交集选择器、 伪元素选择器 我们内层选择器的前面需要加&

&就是连接的意思

 

不加&符号 中间会有个空格 

Less 运算

任何数字、颜色或者变量都可以参与运算。就是Less提供了加(+)、减(-)、乘(*)、除(/)算术运算。

/*Less 里面写*/
@witdh: 10px + 5;
div {
 border: @witdh solid red;
}
/*生成的css*/
div {
 border: 15px solid red;
}
/*Less 甚至还可以这样 */
width: (@width + 5) * 2;

注意:

乘号(*)和除号(/)的写法

运算符中间左右有个空格隔开 1px + 5

对于两个不同的单位的值之间的运算,运算结果的值取第一个值的单位

如果两个值之间只有一个值有单位,则运算结果就取该单位

1. 我们运算符的左右两侧必须敲一个空格隔开 现在可以精密在一起了

2. 两个数参与运算  如果只有一个数有单位,则最后的结果就以这个单位为准

3. 两个数参与运算,如果2个数都有单位,而且不一样的单位 最后的结果以第一个单位为准

4.新版的less不能直接使用/ 需要加括号包含起来

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前馈神经网络与支持向量机实战 --- 手写数字识别

前馈神经网络与支持向量机实战 — 手写数字识别 文章目录前馈神经网络与支持向量机实战 --- 手写数字识别一、前馈神经网络介绍二、支持向量机介绍三、数据集说明四、环境准备五、实验要求六、Python代码tutorial_minst_fnn-keras.py:使用TensorFlow的Sequential实现…

Linux开发常用ps命令选项详解

【摘要】本文介绍了在Linux应用/内核开发调试中,经常需要用到的两个选项组合,当然,如果你需要查看更多更详尽的选项说明,可以参考man说明文档,即命令行下输入man ps进行查看。 aux选项组合 使用场景:更多…

算法日常训练12.4(最接近目标价格甜点成本)

只能说回溯实在是诡异,刚看到这题目思路一点不清晰,想着用回溯想到一点写一点,就这样诡异的出来了。 主要回溯思想,由于冰淇淋基料只能选一种,那就对数组遍历,每次对一种冰淇淋基料继续回溯,用r…

Proxmox VE 修改集群名称

作者:田逸(formyz) Proxmox VE集群一旦创建,其集群的名称就固定下来。在Proxmox VE Web管理后台,没有相应的菜单或按钮对应与集群名称的修改(仅仅发现修改虚拟机选项有修改名称的地方)。在宿主系统Debian下…

网课题库接口

网课题库接口 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 题库:题库后台(点击跳转) 题库…

[附源码]计算机毕业设计文曦家教预约系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

java计算机毕业设计ssm社团管理系统9e73v(附源码、数据库)

java计算机毕业设计ssm社团管理系统9e73v(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。…

计及新能源出力不确定性的电气设备综合能源系统协同优化(Matlab代码实现)

目录 第一部分 文献一《计及新能源出力不确定性的电气设备综合能源系统协同优化》 0 引言 1 新能源出力不确定性处理 1.1 新能源出力预测误差分布 1.2 新能源出力的时间相关性 1.3 场景生成 2 计及温控负荷调节能力的电气综合能源系统协同优化建模…

[附源码]计算机毕业设计文具商城购物系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【计算机毕业设计】基于JSP的毕业设计选题系统的设计与实现

分类号:TP315 U D C:D10621-408-(2007) 498-0 密 级:公 开 编 号:2002211105 成都信息工程学院 学位论文 基于JSP的毕业设计选题系统的设计与实现 摘 要 随着全球信息化技术的兴起,特别是Internet的日益普及&…

python -- PyQt5(designer)中文详细教程(四)事件和信号

事件 signals and slots也 被其他⼈翻译成信号和槽机制。 所有的应用都是事件驱动的。事件大部分都是由用户的行为产⽣的,当然也有其他的事件产生方式,比如网络的连接,窗口管理器或者定时器等。调⽤应⽤的exec_()⽅法时,应⽤会进⼊…

Python金融领域人工智能教程

Python金融领域人工智能教程 财务分析、时间序列分析、投资组合优化、CAPM、算法交易、Q-Learning 等等! 课程英文名:Financial Engineering and Artificial Intelligence in Python 此视频教程共6.0小时,中英双语字幕,画质清晰…

[附源码]Python计算机毕业设计Django网咖管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

ElementUI中Tree组件使用

首先官网上的树形控件教程地址为Element - The worlds most popular Vue UI framework 案例一: 要实现这种类型的树控件,并且后边相关操作: 1.1后端准备工作 首先,数据库表为: 查询接口返回的实体类为: …

给出32位有符号整数,将这个整数翻转

例1 收入123 输出321 例2 输入-123 输出-321 例3 输入120 输出21 答案 思路, 1、先考虑末尾是0的情况时,翻转后需要把0去掉, 2、当有-号时,把翻转后末尾的-号去掉,再在前面加一个-号 3、正数时不变 a -564…

轻松掌握线性代数-万字长文基础知识概览

轻松掌握线性代数-万字长文基础知识概览1 集合相关知识1.1 映射与像1.2 映射与像1.3 线性映射2 矩阵2.1 特殊矩阵2.1.1 零矩阵2.1.2 转置矩阵2.1.3 对称矩阵2.1.4 上三角矩阵2.1.5 下三角矩阵2.1.6 对角矩阵2.1.7 单位矩阵2.1.8 逆矩阵2.2 行列式2.2.1 根据行列式判断是否可逆2…

Java内存模型基础(JMM)

前言 在并发编程中,一般需要处理两个关键问题:线程通信、线程同步,然而线程通信一般的方式有:共享内存、消息传递。 对于共享内存的通信方式,线程同步是显示进行的,程序员必须指定某个方法或者某个代码段需…

并发基本原理(四):AQS源码解析1-ReentrantLock的lock实现原理

简介 AQS(AbstractQueuedSynchronizer)是JUC包中的核心抽象类,许多并发工具的实现,包括ReentrantLock、ReentrantReadWriteLock、CountDownLatch、Semaphore 等都是基于此实现。 AQS,主要提供了表示同步状态的 state…

Kafka - 主题Topic与消费者消息Offset日志记录机制

Kafka Topic 可以根据业务类型,分发到不同的Topic中,对于每一个Topic,下面可以有多个分区(Partition)日志文件: kafka 下的Topic的多个分区,每一个分区实质上就是一个队列,将接收到的消息暂时存储到队列中&#xff0…

CTFHub | 过滤空格

0x00 前言 CTFHub 专注网络安全、信息安全、白帽子技术的在线学习,实训平台。提供优质的赛事及学习服务,拥有完善的题目环境及配套 writeup ,降低 CTF 学习入门门槛,快速帮助选手成长,跟随主流比赛潮流。 0x01 题目描述…