使用Less

2023-05-16

为什么要使用预处理CSS

在使用CSS过程中会遇到一个非常头疼的问题,因为CSS中没有像java/C++或者PHP等程序语言一样有有自己的变量、常量、条件语句以及一些编程语法,只是一行行单纯的属性描述,写起来相当的费事,而且代码难以组织和维护,为了解决这个问题,引入了预处理CSS,预处理CSS可以像Java/C++或者PHP一样用变量,函数等语法描述CSS。

什么是预处理CSS

CSS预处理器用一种专门的编程语言,进行Web页面样式设计,然后再编译成正常的CSS文件,以供项目使用。CSS预处理器为CSS增加一些编程的特性,无需考虑浏览器的兼容性问题,例如你可以在CSS中使用变量、简单的逻辑程序、函数等等在编程语言中的一些基本特性,可以让你的CSS更加简洁、适应性更强、可读性更佳,更易于代码的维护等诸多好处,预处理CSS编程语言有Les,Sass,styuls。

为什么使用Less

Less是一款比较流行的预处理CSS,支持变量、混合、函数、嵌套、循环等特点。

学习Less的常用网站

Less官网 http://lesscss.org/
Less中文网 http://lesscss.cn/
w3cplus http://www.w3cplus.com/css/less

搭建Less开发环境

需要用到的软件

Node.js

安装Less

1.特别说明
安装Less之前需要先安装Node.js,安装Node.js的方法可以参考我之前的博客使用NVM安装Node.js

2.执行安装Less的命令
在命令行窗口中执行 npm install -g less 命令,可以安装Less,这个过程比较慢,需要翻墙

使用Less

创建Less文件
在一个文件夹下新建一个style.less文件,例如我在E:\game\HtmlProject\less下创建了一个style.less文件
这里写图片描述

向在文件中写入Less代码
向style.less文件中写入下面的Less代码

//定义一个变量,用于存放一个颜色
@mainColor: #e92322;

/* 创建一个body标签的样式 */
body {

  /*设置body的背景颜色*/
  background-color: @mainColor;
}

将Less文件编译成CSS文件
打开命令行,并且进入到style.less所在的目录下执行lessc style.less命令将Less文件编译成CSS文件,生成的CSS文件会显示在命令行中
这里写图片描述

将编译生成的CSS文件保存在本地
在命令行中执行lessc style.less > style.css命令后,会先在style.less文件的同级目录下创建一个style.css文件,并且将编译生成的CSS代码保存在style.css文件中
这里写图片描述

查看style.css中的代码
打开style.css文件后,可以看到style.css中的CSS代码和在命令行中的代码一样
这里写图片描述

压缩CSS
在开发中,为了减少网络请求资源的大小,通常需要压缩CSS文件,Less中提供了一个压缩CSS的插件,先执行npm install -g less-plugin-clean-css命令安装插件,然后执行lessc style.less --clean-css="--s1 --advanced --compatibility=ie8" > style.min.css命令,执行该命令后首先会将Less代码编译成CSS代码,然后会压缩CSS代码,最后会创建一个style.min.css文件,并且将压缩后的CSS代码保存到style.min.css文件中

压缩后的CSS代码
压缩后的CSS代码中删掉了注释和空格,换行等无意义的数据
body{background-color:#e92322}

Less中的一些其他用法

Less中实现标签嵌套
下面的Less代码中container下面存在多重嵌套的标签

//定义变量,记录container的宽度
@width: 1000px;

//定义变量,记录container的高度
@height: 2000px;

//创建变量,记录div的颜色
@mainColor: #f0f9f0;

/* 嵌套的用法 */ 
.container {
  width: @width;
  height: @height;
  background-color: #ff0;

  .row {
    height: 200px;

    div {
      border-left: 1px solid @mainColor;

       > a {
        color: red;

        &:hover {
          color: green;
        }
      }
    }
  }
}

编译生成的CSS代码如下
这里写图片描述

Less中使用函数
在下面的代码中body,header,footer标签都要设置border-radius属性,为了减少代码量可以创建一个setRadius函数,让这三个标签都通过调用setRadius函数设置border-radius属性大大的减少了代码量,提高了开发效率

/**
 * 为标签设置border-radius属性
 * @radius 标签的半径
 * @return 没有返回值
 */
.setRadius(@radius: 5px) {
  -moz-border-radius: @radius;
  -webkit-border-radius: @radius;
  border-radius: @radius;
}

header {

    //给header标签设置border-radius属性
    .setRadius;
}

footer {
    //给footer标签设置border-radius属性
    .setRadius(10px);
}

body {
    //给body标签设置border-radius属性
    .setRadius(15px);
}

执行结果
这里写图片描述

合并less文件
在开发中使用less文件的合并功能是一个非常高效且很适合团队开发的方式,比如在一个团队中有三个成员,A成员负责开发页面的header部分,A成员可以建立一个header.less文件,B成员负责开发页面中的banner部分,B成员可以创建一个banner.less文件,C成员负责开发页面中的footer部分,C成员可以建议一个footer.less文件,开发完成后可以将header.less、banner.less、footer.less合并在一个CSS文件中
假定header.less中代码如下

#header {
    background-color: red;
}

banner.less中的代码

#banner {
    background-color: green;
}

footer.less中的代码

#footer {
    background-color: blue;
}

将这三个less文件中的代码合并到style.less中

//引入header.less文件
@import url('header.less');

//引入banner.less文件
@import url('banner.less');

//引入footer.less文件
@import url('footer.less');

编译index.less文件,编译结果如下,可以看到三个less文件中的代码都编译成了CSS文件,并且放在一起
这里写图片描述

在网页中直接使用Less

为什么要在网页中直接使用Less

如果按照上面介绍的方法使用Less,需要每次使用Less写完一点样式后就将Less编译成CSS文件,再在html中引入CSS,总是重复这个操作大大降低了开发效率,为了解决这个问题,可以通过一点简单的配置,可以实现在网页中直接运行

配置在网页中直接运行Less的环境

下载less.js-2.5.1文件
通过https://pan.baidu.com/s/1pLM3j6r下载less.js-2.5.1.zip文件
这里写图片描述

创建项目
创建一个项目。并且将less.js-2.5.1.zip解压到项目目录下

创建Less文件
在项目目录下创建一个main.less文件,并在向main.less中添加如下代码


//创建变量,用于设置body的宽度
@width: 1024px;

//创建变量,用于设置body的高度
@height: 1000px;

//创建变量,用于设置body的背景颜色
@backgroundColor: #f5f5f5;

body {
  width: @width;
  height: @height;
  margin: 0;
  padding: 50px;
  background-color: @backgroundColor;
}

创建HTML文件
在项目目录下创建一个index.html文件,并且向index.html中添加如下代码

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>测试网页中直接使用less文件的效果</title>
  <link rel="stylesheet/less" href="main.less">
</head>

<body>

  <script src="less.js-2.5.1\dist\less.min.js"></script>
</body>

</html>

运行项目
使用HTTP请求的方式在浏览器中运行index.html文件,WebStrom中点击运行按钮后会自动以HTTP请求的方式在浏览器中运行index.html文件,此时查看console控制台,当console控制台中展示下面的信息,表示项目运行成功
这里写图片描述

查看元素信息
在Elements模块下可以看到为body元素设置了CSS样式,表示Less文件在网页中运行成功
这里写图片描述

特别说明

这种方法只能用于开发测试中,开发完成后需要将Less编译成CSS

使用Less做的一个小项目

使用Less实现博雅互动首页 https://github.com/meishadevs/boyaa

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Less 的相关文章

随机推荐

  • MetricsSystem

    Metrics xff0c 我们听到的太多了 xff0c 熟悉大数据系统的不可能没听说过metrics xff0c 当我们需要为某个系统某个服务做监控 做统计 xff0c 就需要用到Metrics 举个例子 xff0c 一个图片压缩服务 x
  • RecyclerView的使用(二):添加头部和尾部

    前言 Recyclerview作为Android的常用控件之一 xff0c 相信大家对它应该是十分熟悉了 xff0c 不熟悉的朋友可以参考我之前发的文章 RecyclerView的基本使用 xff0c 其中包括有单item及多Item的基本
  • Hazelcast集群服务(1)——Hazelcast介绍

    https www cnblogs com hunter 56213 p 6230442 html Hazelcast是什么 分布式 集群服务 网格式内存数据 分布式缓存 弹性可伸缩服务 这些牛逼闪闪的名词拿到哪都是ITer装逼的不二之选
  • 小议同步IO :fsync与fdatasync

    对于提供事务支持的数据库 xff0c 在事务提交时 xff0c 都要确保事务日志 xff08 包含该事务所有的修改操作以及一个提交记录 xff09 完全写到硬盘上 xff0c 才认定事务提交成功并返回给应用层 一个简单的问题 xff1a 在
  • ubuntu中忘记账户密码

    在ubuntu开机后 xff0c 长按shift或者是按esc键进入grub界面如下图 xff1a 或者 然后按回车键进入选项中选择带有recouvery mode的选项 xff0c 不要按回车键 xff0c 按 e 进入编辑模式中 xff
  • 信息化建设前期应该规划

    好多软件公司的信息化建设前期都没有整体的规划 xff0c 可能也认识不到这一点 比如 xff0c 年轻的公司或部门开始使用需求管理系统 xff0c 过一段时间需要一个缺陷管理系统 xff0c 等发展到一定程度又需要一个质量保证系统 xff0
  • Settings.Global设置使用数据

    Settings Global putInt getContentResolver launcher developer 0 int developer 61 Settings Global getInt context getConten
  • 阿里云 李博

    机器学习基础知识 业务架构 xff1b 算法代替人类思考 xff0c 实现生产力飞跃 xff0c xff1b 大部分开源工具封装了算法 xff1b 无需算法开发以及算法的公式推导 xff1b 如何使用算法解决自身的应用场景 xff1b 业务
  • Gradle、Gradle-wrapper、build:gradle(Android Plugin for Gradle)的关系与区别

    唱 简单点 xff0c 理解问题的方式简单点 我不是一个演员 先贴上官方文档 xff1a Gradle https docs gradle org current userguide userguide single html Gradle
  • MoTTY X11 proxy: unable to connect to forwarded X server: Network error: Connection refused

    点击右上角的 X server xff0c 然后再执行命令 xff0c 比如 打开firefox firefox 打开文件管理器 nautilus 打开文本编辑器 gedit 打开模拟时钟 xclock 打开虚拟机管理器 virt mana
  • C语言实现学生成绩管理系统

    学生管理系统 主界面 功能选择界面 所用的函数 函数名 int Num void 函数功能 得到学生人数 函数代码 得到学生人数 int Num void printf 34 请输入学生的人数 n 34 scanf 34 d 34 amp
  • 因式分解

    因式分解是数学中一种常见的计算 xff0c 也是编程中一种非常常见的编程方法 因式分解是指将一个非质数分解成几个质数的积 如 xff1a 4 61 2x2 100 61 2x2x5x5 算法代码 xff1a include lt stdio
  • RecyclerView的使用(一):基本使用

    前言 对于从事Android开发的朋友们来说 xff0c RecyclerView大家肯定都不陌生 xff0c 这是一个和listView有些相似的列表结构控件 xff0c 可以实现一些基本的列表的显示及事件内容 本期对于RecyclerV
  • 在控制台程序中播放音乐

    看过我的博客的人都知道 xff0c 在C语言中调用几个API函数就可以播放音乐了 xff0c 而我在博客中也写过Windows图形界面编程中做过一些与音乐有关的程序 xff0c 如 音乐播放器 音乐贺卡 等 xff0c 可是如果要你在控制台
  • 常用的DOS命令

    xfeff xfeff CMD命令 xff1a 开始 xff0d gt 运行 xff0d gt 键入cmd或command xff08 在命令行里可以看到系统版本 文件系统版本 xff09 1 appwiz cpl xff1a 程序和功能
  • 链表《5》使用链表实现学生成绩管理系统

    上次我使用动态数组结构体实现了学生成绩管理系统 xff1a http blog csdn net u010105970 article details 17752193 这次学习了链表对链表也有所了解 xff0c 我就想着用链表实现学生成绩
  • 得到一个数字中每一位的数字

    学习编程也有一段时间了 xff0c 随着学习的不断深入 xff0c 我越来越体会到了算法的重要性 xff0c 最近遇到了一些非常有意思的算法 xff0c 比如打印水仙花数 将数字逆置 xff0c 在这两个算法中会用到一个数字钟每一位的值 如
  • 使用C++实现学生管理系统

    我在前面的博客中分别使用C语言的动态数组和链表实现了学生成绩管理系统 xff0c 最近正好在学习C 43 43 xff0c 于是我便使用C 43 43 实现了学生成绩管理系统 xff0c 算法和前面的C语言的动态数组实现的学生成绩管理系统差
  • 制作一个简单的Android版的音乐播放器

    音乐播放器是一个非常常见的应用 xff0c 这篇博客就是介绍如何制作一个简单的音乐播放器 xff0c 这款音乐播放器具有以下的功能 xff1a 播放歌曲 暂停播放歌曲 显示歌曲的总时长 显示歌曲的当前播放时长 调节滑块可以将歌曲调节到任何时
  • 使用Less

    为什么要使用预处理CSS 在使用CSS过程中会遇到一个非常头疼的问题 xff0c 因为CSS中没有像java C 43 43 或者PHP等程序语言一样有有自己的变量 常量 条件语句以及一些编程语法 xff0c 只是一行行单纯的属性描述 xf