平时在工作中,偶尔会遇到老大让你修改原来写好的样式,如果修改的多的话,修改起来是非常麻烦的.他不像js一样,定义变量、函数,需要修改某些值,直接修改方法就行了。less的出现,恰恰帮我们解决了这个问题

在这呢,我们简要说明一下less:

  LESSCSS是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法,为CSS的赋予了动态语言的特性,如变量、继承、运算、函数等,更方便CSS的编写和维护。

LESS可以在多种语言、环境中使用,包括浏览器端、桌面客户端、服务端。

在学习前,我们需要做一下前期的工作:

安装sublime text3插件:

  sublime text默认是不支持less语法的高亮显示的,需要安装less2css插件后才能高亮显示。

该插件的作用:

1.当保存文件的时候,会自动生成一个同名的css文件(注意点:如果保存less的父文件夹为less,那么就会在less同级的目录下生成一个css文件夹,并且把生成的同名css文件保存到该css文件夹中)

2.当保存less文件的时候提示编译错误信息

安装node.js

  刚刚那只是前期的第一步,第二步是需要安装node.js,因为less需要node.js支持。下载安装到这里下载 https://nodejs.org/en/download/ 选择自己电脑的版本下载安装就可以了。下载安装好之后,只需要在环境中安装less 就好

安装方法: 打开命令语句window+r点击确定输入以下语句:

$ npm install -g less

// 全局安装好之后,编译less
指定的路径:lessc less文件名 css文件名
E:\项目\blog-04-24\css> lessc style.less style.css

开始使用less

  完成了以上工作之后,我们终于开始要进入主题啦,下面能我就只是讲讲基本的使用,详细的使用大家还是去看官网的吧,毕竟写起来太长了,很耗费时间呢。

  变量:less中定义变量是用@变量名:值;的方式的

@bgColor:#0094ff;
@color:#fff;
.demo{
background-color:@bgColor;
color:@color;
}

生成的css代码:

.demo {
background-color: #0094ff;
color: #ffffff;
}

混合式写法:

  混合可以将一个定义好的class A轻松的引入到另一个class B中,从而简单实现class B继承class A中的所有属性。我们还可以带参数地调用,就像使用函数一样。

/*less*/
@bgColor:#0094ff;
@color:#fff;
.demo{
background-color:@bgColor;
color:@color;
}
.header{
border:1px solid #ededed;
.demo;
} /*输出的css*/
.demo {
background-color: #0094ff;
color: #ffffff;
}
.header {
border: 1px solid #ededed;
background-color: #0094ff;
color: #ffffff;
}

嵌套式写法:

  我们可以在一个选择器中嵌套另一个选择器来实现继承,这样很大程度减少了代码量,并且代码看起来更加的清晰。

/*less写法*/
@bgColor:#0094ff;
@color:#fff;
.demo{
background-color:@bgColor;
color:@color;
}
header{
border:1px solid #ededed;
.demo;
h1 {
font-size: 26px;
font-weight: bold;
}
p { font-size: 12px;
a { text-decoration: none;
&:hover { border-width: 1px }
}
}
} /*输出的css*/
.demo {
background-color: #0094ff;
color: #ffffff;
}
header {
border: 1px solid #ededed;
background-color: #0094ff;
color: #ffffff;
}
header h1 {
font-size: 26px;
font-weight: bold;
}
header p {
font-size: 12px;
}
header p a {
text-decoration: none;
}
header p a:hover {
border-width: 1px;
}

函数 & 运算

运算提供了加,减,乘,除操作;我们可以做属性值和颜色的运算,这样就可以实现属性值之间的复杂关系。LESS中的函数一一映射了JavaScript代码,如果你愿意的话可以操作属性值。

/*less*/
@the-border: 1px;
@base-color: #111;
@red: #842210; #header {
color: @base-color * 3;
border-left: @the-border;
border-right: @the-border * 2;
}
#footer {
color: @base-color + #003300;
border-color: desaturate(@red, 10%);
} /*css部分*/
#header {
color: #333333;
border-left: 1px;
border-right: 2px;
}
#footer {
color: #114411;
border-color: #7d2717;
}

好了,我就讲到这吧,详细的大家可以去官网上看,理解起来也是非常容易的 附上官网地址: http://less.bootcss.com/#

less教程的更多相关文章

  1. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  2. Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数

    上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...

  3. Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数

    上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...

  4. Angular2入门系列教程4-服务

    上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...

  5. Angular2入门系列教程1-使用Angular-cli搭建Angular2开发环境

    一直在学Angular2,百忙之中抽点时间来写个简单的教程. 2016年是前端飞速发展的一年,前端越来越形成了(web component)组件化的编程模式:以前Jquery通吃一切的田园时代一去不复 ...

  6. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  7. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  8. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

  9. Virtual Box配置CentOS7网络(图文教程)

    之前很多次安装CentOS7虚拟机,每次配置网络在网上找教程,今天总结一下,全图文配置,方便以后查看. Virtual Box可选的网络接入方式包括: NAT 网络地址转换模式(NAT,Network ...

  10. webpack之傻瓜式教程

    接触webpack也有挺长一段时间了,公司的项目也是一直用着webpack在打包处理,但前几天在教新人的情况下,遇到了一个问题,那就是:尽管网上的webpack教程满天飞,但是却很难找到一个能让新人快 ...

随机推荐

  1. 网络基础 09_STP生成树协议

    1 STP概念 冗余拓扑结构 冗余拓扑结构能解决单点故障的问题 冗余拓扑结构会引起广播风暴,多帧COPY,MAC地址表错误的问题 广播风暴 当主机X发送一个广播包后 交换机继续没完没了的更新广播流量 ...

  2. 服务器反爬虫攻略:Apache/Nginx/PHP禁止某些User Agent抓取网站

    我们都知道网络上的爬虫非常多,有对网站收录有益的,比如百度蜘蛛(Baiduspider),也有不但不遵守robots 规则对服务器造成压力,还不能为网站带来流量的无用爬虫,比如宜搜蜘蛛(YisouSp ...

  3. hiho#1445 重复旋律5 求子串数量 后缀自动机

    题目传送门 题意:给出一个字符串,求子串的个数. 思路:后缀自动机的题真是每做一题就更理解一些. SAM中的每一状态$p$都代表了一种子串,而p包含的字符串的个数是$len[p]-len[fa[p]] ...

  4. Q312 戳气球

    有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中. 现在要求你戳破所有的气球.每当你戳破一个气球 i 时,你可以获得 nums[left] * nums[ ...

  5. (转) Linux 内核运行参数修改——sysctl命令

    原文:https://blog.csdn.net/u012707739/article/details/78254241 sysctl命令被用于在内核运行时动态地修改内核的运行参数,可用的内核参数在目 ...

  6. maven 根据profile,resources,filters来区分部署环境

    项目过程中,在不同的阶段,分别需要部署开发环境,测试环境,线上环境.如果都用一套配置文件,很容易弄乱,所以维持多套配置文件很有必要. maven提供了一组属性以供开发人员灵活搭配,可以根据环境来打包, ...

  7. 【Kafka】Kafka集群搭建

    一.准备工作 服务器:最好是多台,大于等于2 已经搭建好的zookeeper集群 下载软件kafka_2.11-0.10.0.1.tgz 二.创建目录 #创建目录 cd /opt/ mkdir kaf ...

  8. TortoiseGit学习系列之Windows上本地代码如何通过TortoiserGit提交到GitHub详解(图文)

    不多说,直接上干货! 前面博客 TortoiseGit学习系列之Windows上TortoiseGit的安装详解(图文) 上面博文给大家讲解了一下如何本地安装TortoiseGit. 这篇为大家讲一下 ...

  9. HTML5 表单 中

    input 属性 autofocus 页面加载时自动获得焦点 required   非空字段输入框 placeholder 提供一种提示(hint),输入域为空时显示. pattern 规定验证inp ...

  10. springboot-3-aop

    aop存在的目的是进一步解耦, spring支持aspectJ的注解式切面编程 1), 使用@Aspect声明为一个切面, 并使用@Component加入context中 2), 使用@After, ...