LESS的简单介绍
对于一些布局和样式比较复杂的网页,如何构建一个健康、优雅的CSS文件是一个很令人苦恼的问题。在书写静态页面的时候,我总是遇到布局结构累赘和重复样式复用性不高的问题,当然,对于这些问题归根究底还是要多联系和思考,和使用LESS带来好处并没有什么关系,但是使用LESS书写CSS样式能够清楚的看到样式的布置结构,方面观察各个元素之间的联系。
由于CSS是一门领域专用语言,并且是一门非程序式语言,这就造成了CSS代码书写很容易,但是想要写好、方便维护和管理就需要较强的能力了。除开注释有着不可忽视的作用,一个CSS管理工具也可以带来很大的便利。LESS在最大的好处是在 CSS 的语法基础之上,引入了变量,Mixin(混入),运算以及函数等功能,大大简化了 CSS 的编写,并且降低了 CSS 的维护成本,就像它的名称所说的那样,LESS 可以让我们用更少的代码做更多的事情。
LESS满足CSS的所有语法,并且在其之上,有着一套自定义语法,用户可以通过自定义语法定义自己的样式规则,并且通过解析器编译成对应的CSS文件。LESS语法包括以下几部分:
1、注释
在LESS中,注释有两种书写方式,和JS相似
//这是单行注释,只会在LESS中显示,不会被编译在CSS中 /*
* 这是多行注释,会被编译成CSS的一部分
*/
2、变量
LESS通过@来定义和引入变量,同时变量也存在作用域,在引用时会依照作用域链寻找定义变量的样式使用
@width: 20 px;
.homeDiv {
@width: 30 px;
.centerDiv {
width: @width; // 此处应该取最近定义的变量 width 的值 30px
}
}
.leftDiv {
width : @width; // 此处应该取最上面定义的变量 width 的值 20px
}
3、混入
混入就是相当于将一个类选择器当做变量来引用,实现样式的多重继承。混入有很多种使用方式,这里只列举简单的两种
.bgc{
background-color: black; //声明一个样式
}
.box{
width:100px;
height: 100px;
.bgc; //将样式加入到元素中
}
这是最简单的引用方式,引用类选择器的时候还能附加上变量
.boxwidth(@width){ //可以使用@width: 100px 设定默认值,那么使用的时候不传递参数也可以
width: @width;
}
.box{
height: 100px;
.boxwidth(100px);
}
4、嵌套
嵌套是针对html结构进行对应的样式设置的方式,并且能够使我们书写代码更加简单快捷
<div class="page">
<div class="wrapper">
<div class="content">
<p>hello</p>
<p>don't say hello</p>
</div>
</div>
</div>
样式是这样书写的:
.page{
@width: 500px;
height: 500px;
border: 1px solid blue;
overflow: hidden;
.wrapper{
width: @width;
height: 200px;
margin: 20px auto;
background: green;
.contetn{
width: 200px;
float: right;
p{
font-size: 24px;
}
p:last-of-type{
font-style: initial;
}
}
}
}
经过Koala编译之后:
.page {
height: 500px;
border: 1px solid blue;
overflow: hidden;
}
.page .wrapper {
width: 500px;
height: 200px;
margin: 20px auto;
background: green;
}
.page .wrapper .contetn {
width: 200px;
float: right;
}
.page .wrapper .contetn p {
font-size: 24px;
}
.page .wrapper .contetn p:last-of-type {
font-style: initial;
}
5、函数和运算
LESS支持运算,某些时候能够帮助我们自动完成布局
@width: 250px;
@color: #255;
.switchColor {
width: @width * 2;
background: @color - 100;
}
支持加减乘除四则运算。
LESS的简单介绍的更多相关文章
- [原创]关于mybatis中一级缓存和二级缓存的简单介绍
关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍
一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...
- 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍
一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...
- yii2的权限管理系统RBAC简单介绍
这里有几个概念 权限: 指用户是否可以执行哪些操作,如:编辑.发布.查看回帖 角色 比如:VIP用户组, 高级会员组,中级会员组,初级会员组 VIP用户组:发帖.回帖.删帖.浏览权限 高级会员组:发帖 ...
- angular1.x的简单介绍(二)
首先还是要强调一下DI,DI(Denpendency Injection)伸手获得,主要解决模块间的耦合关系.那么模块是又什么组成的呢?在我看来,模块的最小单位是类,多个类的组合就是模块.关于在根模块 ...
- Linux的简单介绍和常用命令的介绍
Linux的简单介绍和常用命令的介绍 本说明以Ubuntu系统为例 Ubuntu系统的安装自行百度,或者参考http://www.cnblogs.com/CoderJYF/p/6091068.html ...
- iOS-iOS开发简单介绍
概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的 ...
- iOS开发多线程篇—多线程简单介绍
iOS开发多线程篇—多线程简单介绍 一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcod ...
- iOS开发UI篇—UITabBarController简单介绍
iOS开发UI篇—UITabBarController简单介绍 一.简单介绍 UITabBarController和UINavigationController类似,UITabBarControlle ...
- Android开发自学笔记(Android Studio)—4.界面编程与View组件简单介绍
一.引言 Android应用开发最重要的一份内容就是界面的开发,无论你程序包含的内容多么优秀,如若没有一个良好的用户交互界面,最终也只是会被用户所遗弃.Android SDK提供了大量功能丰富的UI组 ...
随机推荐
- 【一天一道LeetCode】#58. Length of Last Word
一天一道LeetCode系列 (一)题目 Given a string s consists of upper/lower-case alphabets and empty space charact ...
- 深入理解Android IPC机制之Binder机制
Binder是Android系统进程间通信(IPC)方式之一.Linux已经拥有的进程间通信IPC手段包括(Internet Process Connection): 管道(Pipe).信号(Sign ...
- View,ViewGroup的Touch事件的分发机制
原帖地址:http://blog.csdn.net/xiaanming/article/details/21696315 ViewGroup的事件分发机制 我们用手指去触摸Android手机屏幕,就会 ...
- java工具类(三)之生成若干位随机数
java 生成若干位随机数的问题 在一次编程的过程中偶然碰到一个小问题,就是需要生成一个4位数的随机数,如果是一个不到4位大的数字,前面可以加0来显示.因为要求最后是一个4位的整数,不带小数点.当时就 ...
- java工具类(一)之服务端java实现根据地址从百度API获取经纬度
服务端java实现根据地址从百度API获取经纬度 代码: package com.pb.baiduapi; import java.io.BufferedReader; import java.io. ...
- (视频)《快速创建网站》2.1 在Azure上创建网站及网站运行机制
现在让我们开始一天的建站之旅. 本文是<快速创建网站>系列的第2篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 1. 网站管理平台WordPress和 ...
- Linux程序分析工具介绍—ldd,nm
原文链接:http://blog.csdn.net/statdm/article/details/7759100 本文要介绍的ldd和nm是linux下,两个用来分析程序很实用的工具.ldd是用来分析 ...
- Xshell Linux 主要命令
1. 查看当前路径 pwd 2.列出当前目录的文件 ls 列出所有文件或者文件夹 ls *abc 列出以abc开头的所以文件 ls –l 列出所以文件及其详细详细 3.进入目录 cd ...
- 一张图解释NIO原理
- 【一天一道LeetCode】#4 Median of Two Sorted Arrays
一天一道LeetCode (一)题目 There are two sorted arrays nums1 and nums2 of size m and n respectively. Find th ...