热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

less(css预处理)

用法1.必须在head内2.样式文件必须先加载

用法

 

1. 必须在head内

2. 样式文件必须先加载

   

   

   

 

变量

 

普通用法:

@nice-blue:#555;

#header { color: @nice-blue; }

 

用变量名定义变量:

@fnord: "I am fnord.";

@var: 'fnord';

content: @@var;

 

变量只能定义一次

 

混合

 

定义一些通用的属性为一个class,然后在另一个class中去调用(id同理)

 

普通用法:

.bordered {

    border-top: dotted 1px black;

}

#menu a{

    color:#111;

    .bordered;

}

 

带参数混合:或设置默认值 .bordered(@color:#f00){...}

.bordered(@color) {

    border-top: dotted 1px black;

}

#menu a{

    color:#111;

    .bordered(blue);

}

 

 

@arguments 变量:包含了所有传递进来的参数

.box-shadow( @x:0, @y:0, @blur:1px, @color:#000 ){

    box-shadow:@arguments;

}

.box-shadow(2px,5px);

输出:

box-shadow:2px 5px 1px #000;

 

模式匹配

 

根据不同的参数和值

 

.mixin (dark, @color) {

    color: darken(@color, 10%);

}

.mixin (light, @color) {

    color: lighten(@color, 10%);

}

.mixin (@_, @color) {

    display: block;

}

@switch: light;

.class {

    .mixin(@switch, #888);

}

得到的css是:

.class {

    color: #a2a2a2;

    display: block;

}

 

 

 

根据表达式

 

全部比较运算有   >  >&#61;  &#61;  &#61;<  <

除去关键字true以外的值都被视示布尔假

所有条件用逗号进行分隔&#xff1a;.mixin (&#64;a) when (&#64;a > 10), (&#64;a <-10) { ... }

 

.mixin (&#64;a) when (lightness(&#64;a) >&#61; 50%) {

    background-color: black;

}

.mixin (&#64;a) when (lightness(&#64;a) <50%) {

    background-color: white;

}

.mixin (&#64;a) {

    color: &#64;a;

}

.class1 { .mixin(#ddd) }

.class2 { .mixin(#555) }

得到的css是&#xff1a;

.class1 {

  background-color: black;

  color: #ddd;

}

.class2 {

  background-color: white;

  color: #555;

}

 

根据值的类型

 

例如&#xff0c;.mixin (&#64;a, &#64;b: 0) when (isnumber(&#64;b)) { ... }

常见的检测函数&#xff1a;iscolor、isnumber、isstring、iskeyword、isurl

判断一个值是纯数字&#xff0c;还是某个单位量&#xff1a;ispixel、ispercentage、isem

 

使用and / not关键字&#xff1a;与、或条件

 

.mixin (&#64;a) when (isnumber(&#64;a)) and (&#64;a > 0) { ... }

.mixin (&#64;b) when not (&#64;b > 0) { ... }

 

 

 

 

嵌套

 

#header        { color: black;

  .navigation  { font-size: 12px }

  .logo        { width: 300px;

    &:hover    { text-decoration: none } //&是串联选择器&#xff0c;相当于 .logo:hover{...}

  }

}

 

运算

 

使用变量

&#64;base: 5%;

&#64;filler: &#64;base * 2;

 

变量和变量的运算

&#64;other: &#64;base &#43; &#64;filler;

 

颜色&#xff1a;除法、加法

color: #888 / 4;

background-color: &#64;base-color &#43; #111;

 

尺寸&#xff1a;乘法、加法 &#xff08;可以使用括号&#xff09;

&#64;var: 1px &#43; 5;

width:(&#64;var&#43;5)*2;

 

穿插在复合属性中

border:(&#64;width*2) solid black;

 


 

color函数

 

lighten(&#64;color, 10%);

darken(&#64;color, 10%);

saturate(&#64;color, 10%);

desaturate(&#64;color, 10%);

fadein(&#64;color, 10%);

fadeout(&#64;color, 10%);

fade(&#64;color, 50%);

spin(&#64;color, 10);

spin(&#64;color, -10);

mix(&#64;color1, &#64;color2)

hue(&#64;color);

lightness(&#64;color);

&#64;new: hsl(hue(&#64;old), 45%, 90%); //&#64;new 将会保持 &#64;old的 色调, 但是具有不同的饱和度和亮度.

 

Math函数

 

round

ceil

floor

percentage

 

其他点

 

命名空间

 

1.定义一些属性集&#xff0c;打包在bundle中

#bundle {

  .button () {

    display: block;

    &:hover { background-color: white }

  }

  .tab { ... }

  .citation { ... }

}

2.这样引入使用

#header a{

    color:orange;

    #bundle > .button;

}

 

 

作用域

 

&#64;var: red;

#page {

  &#64;var: white;

  #header {

    color: &#64;var; // white

  }

}

#footer {

  color: &#64;var; // red  

}

 

注释

 

/* hello,comment! */

// hi,comment!

但是&#xff0c;双斜线的注释在编译的过程中会被过滤掉

 

Importing

 

&#64;import "lib.less";

&#64;import "lib";//可以省略.less后缀

&#64;import "lib.css";//less不会对它进行处理

 

字符串中插入变量&#xff1a;&#64;{varName}

 

&#64;base-url: "//abc.com";

background-image: url("&#64;{base-url}/images/bg.png");

 

避免编译&#xff1a;在字符串前加上一个 ~

 

.class{

    filter: ~"ms:always.say";

}

 

使用js表达式&#xff1a;在字符串前后加上一个反引号

 

&#64;var: &#96;"hello".toUpperCase() &#43; &#39;!&#39;&#96;;

&#64;height: &#96;document.body.clientHeight&#96;;

&#64;color: color(&#96;window.colors.baseColor&#96;);

 

 

 

 

 

;

转:https://www.cnblogs.com/upup2015/p/7770464.html



推荐阅读
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 本指南介绍了 `requests` 库的基本使用方法,详细解释了其七个主要函数。其中,`requests.request()` 是构建请求的基础方法,支持其他高级功能的实现。此外,我们还重点介绍了如何使用 `requests.get()` 方法来获取 HTML 网页内容,这是进行网页数据抓取和解析的重要步骤。通过这些基础方法,读者可以轻松上手并掌握网页数据抓取的核心技巧。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 本文详细介绍了如何在 Python 中忽略警告和错误,提供了多种实现方法,并解释了其背后的原理。对于希望提高代码健壮性和可读性的开发者来说,这些方法非常实用。 ... [详细]
  • 在HTML布局中,即使将 `top: 0%` 和 `left: 0%` 设置为元素的定位属性,浏览器中仍然会出现空白填充。这个问题通常与默认的浏览器样式、盒模型或父元素的定位方式有关。为了消除这些空白,可以考虑重置浏览器的默认样式,确保父元素的定位方式正确,并检查是否有其他CSS规则影响了元素的位置。 ... [详细]
  • 如何使用 `org.apache.tomcat.websocket.server.WsServerContainer.findMapping()` 方法及其代码示例解析 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • 在.NET框架中,DataFormatString用于对数据进行格式化显示。常见的格式化方式包括:数字格式(如“{0:N2}”表示保留两位小数的数字,结果为12.36),整数格式(如“{0:N0}”表示四舍五入到最接近的整数,结果为13),货币格式(如“{0:c2}”表示带有货币符号并保留两位小数,结果为$12.36),以及高精度货币格式(如“{0:c4}”表示带有货币符号并保留四位小数,结果为$12.3656)。这些格式化选项能够帮助开发者更灵活地控制数据的显示效果。 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • 深入解析CAS机制:全面替代传统锁的底层原理与应用
    本文深入探讨了CAS(Compare-and-Swap)机制,分析了其作为传统锁的替代方案在并发控制中的优势与原理。CAS通过原子操作确保数据的一致性,避免了传统锁带来的性能瓶颈和死锁问题。文章详细解析了CAS的工作机制,并结合实际应用场景,展示了其在高并发环境下的高效性和可靠性。 ... [详细]
  • 深入探索HTTP协议的学习与实践
    在初次访问某个网站时,由于本地没有缓存,服务器会返回一个200状态码的响应,并在响应头中设置Etag和Last-Modified等缓存控制字段。这些字段用于后续请求时验证资源是否已更新,从而提高页面加载速度和减少带宽消耗。本文将深入探讨HTTP缓存机制及其在实际应用中的优化策略,帮助读者更好地理解和运用HTTP协议。 ... [详细]
author-avatar
最傻的傻瓜z1998
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有