动态样式语言—LESS基础知识

CSS是一门非程序式语言,缺少逻辑性,不便于维护

LESS在CSS现有语法的基础上,为CSS加入程序式语言的特性

引入了变量、混入、运算、函数等功能,大大简化CSS的编写,降低了CSS的维护成本

LESS包含一套语法和一个解析器,用户用它的语法生成样式规则,这些规则通过解析器后生成CSS文件

1.变量

以{}划分作用域,变量从里往外进行查找

 @width : 20px;
 #homeDiv {
   @width : 30px;
   #centerDiv{
       width : @width;// 此处应该取最近定义的变量 width 的值 30px
              }
 }
 #leftDiv {
     width : @width; // 此处应该取最上面定义的变量 width 的值 20px 

 }
#homeDiv #centerDiv {
  width: 30px;
 }
 #leftDiv {
  width: 20px;
 }

2.混入(实现多重继承)

将一个类嵌套到另一个类中使用

// 定义一个样式选择器
 .roundedCorners(@radius:5px) { //默认值为5
 -moz-border-radius: @radius;
 -webkit-border-radius: @radius;
 border-radius: @radius;
 }
 // 在另外的样式选择器中使用
 #header {
 .roundedCorners;
 }
 #footer {
 .roundedCorners(10px);
 }
 #header {
 -moz-border-radius:5px;
 -webkit-border-radius:5px;
 border-radius:5px;
 }
 #footer {
 -moz-border-radius:10px;
 -webkit-border-radius:10px;
 border-radius:10px;
 }

混入参数

// 定义一个样式选择器
 .borderRadius(@radius){
 -moz-border-radius: @radius;
 -webkit-border-radius: @radius;
 border-radius: @radius;
 }
 // 使用已定义的样式选择器
 #header {
 .borderRadius(10px); // 把 10px 作为参数传递给样式选择器
 }
 .btn {
 .borderRadius(3px);// // 把 3px 作为参数传递给样式选择器
 }

arguments参数:表示所有变量:

.boxShadow(@x:0,@y:0,@blur:1px,@color:#000){
 -moz-box-shadow: @arguments;
 -webkit-box-shadow: @arguments;
 box-shadow: @arguments;
 }
 #header {
 .boxShadow(2px,2px,3px,#f36);
 }

支持命名空间,防止重名问题:

#mynamespace {
 .home {...}
 .user {...}
 }

嵌套规则:

<div id="home">
 <div id="top">top</div>
 <div id="center">
 <div id="left">left</div>
 <div id="right">right</div>
 </div>
 </div>
#home{
   color : blue;
   width : 600px;
   height : 500px;
   border:outset;
   #top{
        border:outset;
        width : 90%;
   }
   #center{
        border:outset;
        height : 300px;
        width : 90%;
        #left{
          border:outset;
          float : left;
  width : 40%;
        }
        #right{
          border:outset;
          float : left;
  width : 40%;
        }
    }
 }

&:

a {
 color: red;
 text-decoration: none;
 &:hover {// 有 & 时解析的是同一个元素或此元素的伪类,没有 & 解析是后代元素
  color: black;
  text-decoration: underline;
 }
 }

3.运算及函数

对数值型value(如颜色、数字)进行四则运算

专门针对color的一组函数

 lighten(@color, 10%); // 返回比原色亮10%的颜色
 darken(@color, 10%); //返回比原色暗10%的颜色
 saturate(@color, 10%); //返回比原色饱和10%的颜色
 desaturate(@color, 10%);// 返回比原色不饱和10%的颜色
 fadein(@color, 10%); // 返回比原色不透明10%的颜色
 fadeout(@color, 10%); // 返回比原色透明10%的颜色
 spin(@color, 10); // 比原色大10度色调比
 spin(@color, -10); // 比原色小10度色调比//使用
init: #f04615;
 #body {
  background-color: fadein(@init, 10%);
 }

4、注释

与JS一样

注意:单行注释不会出现在编译后的CSS文件中,若需要保留注释,使用多行注释

5.使用方式:

客户端:

//注意文件的先后顺序<link rel="stylesheet/less" type="text/css" href="styles.less">
<script type="text/javascript" src="less.js"></script>

实际项目开发中常用:

编写LESS文件后,直接将它编译成CSS文件,然后引入页面

时间: 2024-08-01 23:39:15

动态样式语言—LESS基础知识的相关文章

Java语言的基础知识

第三章 1.在java源文件编辑器中,选择某个成员变量,然后按住shift+alt+j,Eclipse会自动添加JavaDoc文档注释结构,如果选择的是方法,还会自动添加参数名称. 2.Java语言规定标示符是由任意的字母.下划线.美元符号和数字组成,并且第一个字符不能使数字,标示符不能使java中的保留关键字. 3.在Java语言中允许使用汉字或其他语言文字作为变量名,如int 年龄 =21;在程序运行时不会报错,但建议尽量不要使用这些语言作为变量. 4.java用关键字final来声明常量,

R语言常用基础知识

seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)),    length.out = NULL, along.with = NULL, ...) 举例----------Examples----------seq(0, 1, length.out=11) seq(stats::rnorm(20)) #  seq(1, 9, by = 2)     #  seq(1, 9, by = pi)    #  seq(1, 6, by =

Less (一种动态样式语言)

Less (一种动态样式语言). LESS是一种由Alexis Sellier设计的动态层叠样式表语言,受Sass所影响,同时也影响了 Sass的新语法:SCSS. LESS是开源的,其第一个版本由Ruby写成,但在后续的版本当中,Ruby逐渐被替换为JavaScript.受益于JavaScript,LESS 可以在客户端上运行(IE6+.Webkit.Firefox),也可以在服务端运行(Node.js.Rhino). 在语法方面,LESS与CSS较为接近,一个合法的CSS代码段本身也是一段合

Java语言的基础知识4

第五章(数组) 1.在Java中可以将数组看做是一个对象虽然基本数据类型不是对象但有基本数据类型组成的数组是对象. 2.对于二维数组求第二维就用array[0].length, array.length就是默认的是第一维的长度. 3.foreach并不是一个新的语法它是for的循环的格式化主要执行遍历功能的循环,example: int arry ={1,2,3,4,5}; for(int i :array){ system.out.println(): } 4.数组元素定义完以后可通过Arra

Java学习-033-JavaWeb_002 -- 网页标记语言JSP基础知识

JSP 是 Sun 公司提倡的一门网页技术标准.在 HTML 文件中,加入 Java 代码就构成了 JSP 网页,当 Web 服务器访问 JSP 请求的时候,首先执行其中的 Java 程序源码,然后以 HTML 形式返回, Java 程序运行在服务端,最终显示在客户端.JSP 源于 Java,因而 JSP 的运行环境依赖JDK,当然也需要服务器软件(例如 Tomcat 等). 一.运行环境搭建 1.安装 JDK,请参阅之前的博文:Java学习-001-JDK安装配置 2.Tomcat部署及环境变

Oracle的DML语言必备基础知识

原文:Oracle的DML语言必备基础知识 前提是咱们都已经对常用的数据操纵语言非常熟悉了,对标准SQL: SELECT子句                --指定查询结果集的列 DROM子句                 --指定查询来自哪个表或者试图 [WHERE 子句]              --指定查询的条件 [GROUP BY 子句]           --指定查询结果集的分组的条件 [HAVING 子句]             --指定分组或者集合的查询条件 [ORDERB

Java语言的基础知识12

第十四章(使用集合类保存对象) 1.java中得集合对象就像是一个容器,它用来存放Java类的对象.Java中的集合类有些方便存入和取出,有些则方便查找.集合类和数组的区别是,数组的长度是固定的,集合的长度是可变的,数组用来存放基本类型,集合用来存放对象的引用.常用的集合类有List集合,Set集合,和Map集合. 2.List集合包括List接口以及List接口的所有实现类.List集合中的元素许重复,个元素的顺序就是对象插入的顺序.类似java中的数组.List类继承了Collection接

Java语言的基础知识10

第十二章(GUI事件) 1.GUI事件的处理机制是建立交互式应用程序的关键技术,其中事件是用在程序界面上的各种操作. 2.写程序的时候对于swing的一些空间譬如jprogressbar ,jtextfield等空间在全局中声明以后,用的时候一定要new 一下,自己经常忘记(由于对java理解不深) private  JTextField textField2; textField2 = new JTextField(); 3.事件在java语言中也是一种对象 4.监听器接受到事件之后,将委托指

Java语言的基础知识9

第十一章(线程) 1.通过String name=Thread.currentThread().getName();来获取当前线程的名称. 2.多次启动一个线程或者启动一个已经运行的线程是非法的,会抛出IllegalThreadStateException异常对象. Thread.sleep((int)Math.random()*10000); 3.java提供了Runnable接口使继承了其他类之后同样可以实现该接口达到创建线程的目的Runabble接口同样定义了Run方法. 实现Runnab