less语言学习手记

工具下载

在less学习中,我们都会需要随时编译我们的less文件,查看生成的css样式表是否正确,以及是否符合我们的要求.推荐一款编译软件供大家下载使用:koala,本软件支持自动编译和报错机制,会帮助我们更加高效的学习less

注释

less的注释和我们通常使用的javascript的注释风格一致.如:

/*我是一条注释*/
//我也是一条注释

但是值得注意的是 '/**/' 这样的写法在less中还有不同的用法:

//admin.less
/*我是一条注释,但不会被编译显示在对应的css文件中*/
a{color:#ccc}
---------------------------------------------
//admin.css
a{color:#ccc}

'//' 这样的注释写法可以被编译在对应css文件中

//admin.less
//这是注释部分
a{color:#ccc}
-------------
//admin.css
//这是注释部分
a{color:#ccc}

变量

less中存在像JavaScript中变量这样的概念,变量会使我们的css更易维护(如更改皮肤色值,字体大小等),想要在less中声明变量必须以@开头 例如:@变量名:值;

//admin.less
@te_width:300px;
.aa{width: @te_width;}
----------------------
//admin.css
.aa {
width: 300px;
}

混合

less中对某一个样式类混合其他样式类名的书写方式,减少样式重复:

//admin.less
.cc{width: @te_width;.bb}
.bb{line-height: 20px;}
------------------------
//admin.css
.cc {
width: 300px;
line-height: 20px;
}
.bb {
line-height: 20px;
}

混合---可带参数

同样的我们还可以对混合应用的样式类带参数使用,更灵活,更高效:

//admin.less
.border_2(@border_width){//相当于声明了一个名字叫border_2的方法,这个方法可以接收一个参数@border_width用来改变border的边框大小
border:@border_width solid pink;
}
.hunhe{//在需要用到的地方使用方法border_2,并传递一个具体的参数20px
.border_2(20px);
}
-------------------------------------------------------------------------
//admin.css
.hunhe {
border: 20px solid #ffc0cb;
}

混合---带默认值参数

默认参数也叫做缺省值意思指在方法的使用中可以不传递任何参数的情况下,按照默认参数的值执行该方法:

//admin.less
.border_3(@border_width:10px){//参数的默认值写在变量的后面,用':'分隔
border:@border_width solid pink;
}
.hunhe2{
.border_3();//不传递参数执行默认
}
-------------------------------------------------------------------
admin.css
.hunhe2 {
border: 10px solid #ffc0cb;//不传递参数执行默认10px
}

匹配模式

形如方向分为上下左右,对于每个方向指向的城市也会有所不同,面对这样的问题就需要用到匹配模式,下面用一个css实现三角形的例子来说明:

//admin.less
//先声明四个方向箭头的方向,边框大小,颜色等
.tra(top,@a:5px,@c:#ccc){//向上箭头
border-width: @a;
border-color: transparent transparent @c transparent;
border-style: solid dashed dashed dashed; //兼容IE6效果
}
.tra(bottom,@a:5px,@c:#ccc){//向下箭头
border-width: @a;
border-color: @c transparent transparent transparent;
border-style: solid dashed dashed dashed; //兼容IE6效果
}
.tra(left,@a:5px,@c:#ccc){//向左箭头
border-width: @a;
border-color:transparent @c transparent transparent;
border-style: dashed dashed dashed solid; //兼容IE6效果
}
.tra(right,@a:5px,@c:#ccc){//向右箭头
border-width: @a;
border-color: transparent transparent transparent @c;
border-style: dashed dashed dashed solid; //兼容IE6效果
}
//在所需要用到的类里面直接使用并传递方向的参数
.sanjiao{
.tra(bottom)
}
//同时也可以使用默认值的写法定义默认效果:
.tra(@_,@a:5px,@c:#ccc){//向右箭头
width: 0;
height: 0;
overflow: hidden;
}
-------------------------------------------------------
//admin.css
.sanjiao {
border-width: 5px;
border-color: #cccccc transparent transparent transparent;
border-style: solid dashed dashed dashed;
width: 0;
height: 0;
overflow: hidden;
}

less中的运算

在less中可以使用加减乘除等算数运算来计算想要的数值大小

//admin.less
@tex_01:300px;
.box_2{
width: @tex_01+20;//支持加减乘除元算
color: #ccc-10;//色值亦可以进行运算
}
-----------------------------------------
admin.css
.box_2 {
width: 320px;
color: #c2c2c2;
}

less的嵌套

嵌套的使用可以更加方便快捷的生成多个层级关系的css样式:

//admin.less
.list{
width: 100px;
a{
padding: 0;
}
}
.list2{
width: 100px;
a{
padding: 0;
&:hover{//&代表上一层选择器
color: red;
}
}
}
--------------------
//admin.css
.list {
width: 100px;
}
.list a {
padding: 0;
}
.list2 {
width: 100px;
}
.list2 a {
padding: 0;
}
.list2 a:hover {
color: red;
}

@arguments

默认使用所有的参数:

//admin.less
.arg(@w:30px,@c:#ccc,@s:solid){
border:@arguments
}
.ccc{
.arg();
}
----------------------------
//admin.css
.ccc {
border: 30px #cccccc solid;
}

避免编译

遇到不想被编译的内容时可以使用'~'来做标记:

//admin.less
.te_03{
width: ~'calc(300px-30)';
}
--------------------------
//admin.css
.te_03 {
width: calc(300px-30);
}

!important

为提升样式优先级时使用:

//admin.less
.ccc{
.arg()!important;
}
------------------------
//admin.css
.ccc {
border: 30px #cccccc solid !important;
}

less初学手记的更多相关文章

  1. Python初学手记----在window系统中安装环境

    官网地址: https://www.python.org/ Win版下载地址:https://www.python.org/downloads/windows/ 安装注意:安装路径推荐修改. path ...

  2. [小北De编程手记] : Selenium For C# 教程目录

    写<Selnium For C#>系列文章的初衷是因为有很多朋友问我应该从哪里开始学习自动化测试,于是就为大家写下了这个系列的文章,希望对你有些帮助吧.而我想表达的是Selenium(同时 ...

  3. [小北De编程手记] : Lesson 01 - Selenium For C# 之 环境搭建

    在我看来一个自动化测试平台的构建,是一种很好的了解开发语言,单元测试框架,自动化测试驱动,设计模式等等等的途径.因此,在下选择了自动化测试的这个话题来和大家分享一下本人关于软件开发和自动化测试的认识. ...

  4. 转:[小北De编程手记] : Selenium For C# 教程目录

    写<Selnium For C#>系列文章的初衷是因为有很多朋友问我应该从哪里开始学习自动化测试,于是就为大家写下了这个系列的文章,希望对你有些帮助吧.而我想表达的是Selenium(同时 ...

  5. DDD初学指南

    去年就打算总结一下,结果新换的工作特别忙,就迟迟没有认真动手.主要内容是很多初学DDD甚至于学习很长时间的同学没有弄明白DDD是什么,适合什么情况.这世界上没有银弹,抛开了适合的场景孤立的去研究DDD ...

  6. gulp初学

    原文地址:gulp初学 至于gulp与grunt的区别,用过的人都略知一二,总的来说就是2点: 1.gulp的gulpfile.js  配置简单而且更容易阅读和维护.之所以如此,是因为它们的工作方式不 ...

  7. 初学seaJs模块化开发,利用grunt打包,减少http请求

    原文地址:初学seaJs模块化开发,利用grunt打包,减少http请求 未压缩合并的演示地址:demo2 学习seaJs的模块化开发,适合对seajs基础有所了解的同学看,目录结构 js — —di ...

  8. Linux.NET实战手记—自己动手改泥鳅(上)

    各位读者大家好,不知各位读者有否阅读在下的前一个系列<Linux.NET 学习手记>,在前一个系列中,我们从Linux中Mono的编译安装开始,到Jexus服务器的介绍,以及如何在Linu ...

  9. Linux.NET学习手记(7)

    前一篇中,我们简单的讲述了下如何在Linux.NET中部署第一个ASP.NET MVC 5.0的程序.而目前微软已经提出OWIN并致力于发展VNext,接下来系列中,我们将会向OWIN方向转战. 早在 ...

随机推荐

  1. 用firefox 31配合KeePass密码管理器实现web帐号密码自动填写登录

    原文:http://bbs.kafan.cn/thread-1754676-1-1.html KeePass的优势:1.这是一款完全开源的密码管理器2.很多人都使用lastpass来保存密码,而这种严 ...

  2. linq使用字符串参数排序

    今天找了半天资料,有两种种方法: 1.把字符串参数变为lambda表达式 2.使用System.Linq.dynamic引用 这里我讲第二种方法 第一步:nuget搜索关键字"dynamic ...

  3. Android轮播图

    轮播图是很常用的一个效果 核心功能已经实现 没有什么特殊需求 自己没事研究的 所以封装的不太好 一些地方还比较糙 为想要研究轮播图的同学提供个参考目前测试图片为mipmap中的图片 没有写从网络加载图 ...

  4. JiaThis分享

    <!DOCTYPE html> <html> <head> <meta charset="{CHARSET}"> <meta ...

  5. 【Python】 xml解析与生成 xml

    xml *之前用的时候也没想到..其实用BeautifulSoup就可以解析xml啊..因为html只是xml的一种实现方式吧.但是很蛋疼的一点就是,bs不提供获取对象的方法,其find大多获取的都是 ...

  6. Konckout第三个实例:循环绑定 -- table列表数据的填充

    传统js:拼接字符串,再写入指定标签中 <!DOCTYPE html> <html> <head> <meta charset="utf-8&quo ...

  7. SQL注入之Sqli-labs系列第一篇

    在开始接触渗透测试开始,最初玩的最多的就是Sql注入,注入神器阿D.明小子.穿山甲等一切工具风靡至今.当初都是以日站为乐趣,从安全法实施后在没有任何授权的情况下,要想练手只能本地环境进行练手,对于sq ...

  8. linux下安装Sublime Text3并将它的快捷方式放进启动器中

    Sublime Text是一个代码编辑器,我主要是用它来编辑python.下面就来简单说明下它在linux的安装过程吧! 1.添加sublime text3的仓库 首先按下快捷键ctrl+alt+t打 ...

  9. Django+xadmin打造在线教育平台(七)

    十.授课教师 10.1.讲师列表页 拷贝teacher-list.html和teacher-detail.html到templates目录下 先改teacher-list.html,同样继承base. ...

  10. 测试对bug如何分析和定位

    如何去区分一个功能测试工程师的水平高和低? 可以从很多个方面去检查,比如测试的思路, 比如测试用例的覆盖度?,比如测试出bug是否能够定位到根因? 上面说的各个方面都很合理,那我们平常如何如更深的定位 ...