CSS作为前端开发的三驾马车之一,无时无刻不在影响着前端的发展。为了让 CSS 变得更加的好用,出现了一些预处理语言。 它们让 CSS 彻底变成一门可以使用变量 、循环 、继承 、自定义方法等多种特性的标记语言,逻辑性得以大大增强

Sass

Sass是成熟、稳定、强大的CSS预处理器,而SCSS是Sass3版本当中引入的新语法特性,完全兼容CSS3的同时继承了Sass强大的动态功能。

后缀为.scss

  • 安装

- https://www.sass.hk/install/ 官网

- https://www.bootcdn.cn/sass.js/ BootCDN

- npm

  • 变量
在sass中可以将需要复用的属性存在一个变量中。通过$符来表示复用的变量$variable : pink;div{color:$variable}
  • 嵌套
css中重复写选择器是非常恼人的。如果要写一大串指向页面中同一块的样式时,往往需要 一遍又一遍地重复的写。在sass中,可以采用嵌套写法。/* 编译后 */#content { article { h1 { color: #333 } p { margin-bottom: 1.4em } } aside { background-color: #EEE }}/* 编译后 */#content article h1 { color: #333 }#content article p { margin-bottom: 1.4em }#content aside { background-color: #EEE }
  • 引入

sass引入

css有一个特别不常用的特性,即@import规则,它允许在一个css文件中导入其他css文件。sass也有一个@import规则,但不同的是,sass的@import规则在生成css文件时就把相关文件导入进来。// _reset.scsshtml, body, ul, ol { margin: 0; padding: 0;}// base.scss@import 'reset';body { font: 100% Helvetica, sans-serif; background-color: #efefef;}引入后base也会存在_reset的属性默认变量值 - !default用于变量,含义是:如果这个变量被声明赋值了,那就用它声明的值,否则就用这个默认值。
  • 静默注释
css中注释的作用包括帮助你组织样式、以后你看自己的代码时明白为什么这样写,以及简单的样式说明。但是,你并不希望每个浏览网站源码的人都能看到所有注释。Sass支持静默注释,即 // ,使用静默注释注释便不会出现 
  • 混合器
混合(Mixin)用来分组那些需要在页面中复用的CSS声明,开发人员可以通过向Mixin传递变量参数来让代码更加灵活,该特性在添加浏览器兼容性前缀的时候非常有用,SASS目前使用@mixin name指令来进行混合操作@mixin border-radius($radius) { border-radius: $radius; -ms-border-radius: $radius; -moz-border-radius: $radius; -webkit-border-radius: $radius;}.box { @include border-radius(10px);}
  • 继承
基于Nicole Sullivan面向对象的css的理念,选择器继承是说一个选择器可以继承为另一个选择器定义的所有样式。这个通过@extend语法实现//通过选择器继承继承样式.error { border: 1px solid red; background-color: #fdd;}.seriousError { @extend .error; border-width: 3px;}

Less

Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量、Mixin、函数等特性,使 CSS 更易维护和扩展。

  • 安装
- CDN //cdnjs.cloudflare.com/ajax/libs/less.js/2.5.3/less.min.js- npm install less -g
  • 变量
与Sass不同,变量不在是$而是换成了@/* Less */ @color: #999; #wrap { color: @color;}/* Less变量更多使用方法 */还可用作变量名,属性名,url变量甚至整个变量变量运算 - 支持大小的运算,还支持包括颜色的运算/* Less作用域 */遵循就近原则
  • 嵌套
& :代表的上一层选择器的名字 /* Less */ #header{ &title{#header margin:20px; } }代表 #header title
  • 混合方法
  • 继承
extend 关键字同Sass相同all 关键字使用选择器匹配到的 全部声明
  • 导入
@import ( reference,once,multiple)- reference 引入的 Less 文件,但不会 编译它- once 这表明相同的文件只会被导入一次,而随后的导入文件的重复代码都不会解析- multiple 允许导入多个同名文件 
  • 函数
isnumber、iscolor、isurl等更多http://lesscss.cn/functions/
  • 注释
// Less提供的一种注释,不会被编译在 CSS 文件中

总结

两者都是适用性很广的框架,没有存在谁好谁坏的情况,只有存在谁更适合当前项目的问题。这边对两者做了简单概述,并没有做很细致的深入解析,如果有兴趣可以做更深入的研究,两者的官网贴在上面。当然优秀的CSS预处理库当然不止这两个,还有许多优秀的库等待着大家去发掘。

css less 不要作用到子对象_CSS-预处理语言Sass、Less简述相关推荐

  1. css less 不要作用到子对象_CSS的亲儿子,居然不是Less??

    先来聊聊sass吧,之前用了很久的less,刚开始接触的时候感觉这东西就是个神器. 写CSS时间长了自然就能发现CSS在书写的时候的不足之处: 不能嵌套,没有变量,更加不能像js那样用循环自动生成之类 ...

  2. css 样式三元运算_CSS扩展语言——Sass入门指南

    一.Sass概况 今天来聊聊sass吧,之前用了很久的less,刚开始接触的时候感觉这东西就是个神器. 写CSS时间长了自然就能发现CSS在书写的时候的不足之处,不能嵌套,没有变量,更加不能像js那样 ...

  3. CSS 与其预处理语言 Sass、Less、Stylus 之间的转化

    预处理语言的由来:CSS 是一门非程序式语言,没有变量.函数.SCOPE(作用域),需要书写大量看似没有逻辑的代码,不方便维护及扩 展,不利于复用,为了让 CSS 富有逻辑性,短板不那么严重,涌现出了 ...

  4. css less 不要作用到子对象_不要盲目的在项目中使用LESS CSS

    此篇文章发布于2011年,当时的想法与现在已有不同,不建议继续阅读. 如果你还不知道LESS CSS是什么东西,可以看一下这篇文章,是我一朋友写给新人看的<CSS--LESS> 不可否认, ...

  5. css less 不要作用到子对象_使用Less实现网站主题切换

    v-easy-components change theme 很多初学前端的开发同学一定有一种想法,就是如何更改网站的主题.前年(2018),我也陷入了思考,如何切换网站主题呢?当时不知道less,只 ...

  6. css项目符号编号,CSS重新定义项目符号和编号_css

    用过Word的人都知道Word有一个"项目符号和编号"的功能,用起来很方便.Dreamweaver3的属性面板也有一个类似有的"项目符号和编号"的图标按钮,产生 ...

  7. 网页设计的css样式,网页设计引入CSS样式的五种方式_css

    一.使用STYLE属性 将STYLE属性直接加在个别的元件标签里,<元件(标签) STYLE="性质(属性)1: 设定值1; 性质(属性)2: 设定值2; -} 例如: <TD ...

  8. [css] 说说你对字母“X“在CSS中有什么作用?

    [css] 说说你对字母"X"在CSS中有什么作用? 可以用作关闭按钮叉叉X的底部与文本对齐的基线位置相同 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一 ...

  9. html中hover的作用,hover在css中的作用是什么

    hover在css中的作用是什么 发布时间:2020-12-07 10:26:29 来源:亿速云 阅读:143 作者:小新 这篇文章给大家分享的是有关hover在css中的作用是什么的内容.小编觉得挺 ...

最新文章

  1. java跨函数跳转_C语言中将绝对地址转换为函数指针以及跳转到内存指定位置处执行的技巧...
  2. 【机器学习入门】(5) 决策树算法实战:sklearn实现决策树,实例应用(沉船幸存者预测)附python完整代码及数据集
  3. 一帖搞定U盘系统制作及安装苹果mac os引导U盘安装windows7
  4. 【FPGA】SRIO IP核系统总览以及端口介绍(一)(User Interfaces 之 I/O Port)
  5. 随着通信和编程,它是一门艺术系列3(沟通的目的)
  6. 织梦channel标签currentstyle样式无效不起作用
  7. 关于STM32像EPROM一样可以单字节写内部Flash的理解
  8. Python编程基础:第四十二节 多重继承Multi Level Inheritance
  9. Mina2中IoService
  10. if else if else语句格式_你还在用if/else吗?
  11. android UI布局
  12. 欧拉回路 欧拉路径
  13. IOS学习:常用第三方库(GDataXMLNode:xml解析库)
  14. SpringBoot Unable to find a @SpringBootConfiguration, you need to use....
  15. astc贴图格式是什么意思_SP多象限UV贴图的使用方法!
  16. 如何解决苹果Mac安装Ps错误代码182?
  17. 华为hs8145v5如何改桥接_华为 光猫 HS8546V5 改 桥接模式 简易教程
  18. 什么是localhost(127.0.0.1)?
  19. 深度学习——UMRL
  20. 关于QRCode生成二维码(背景图、Logo)

热门文章

  1. 异步过程的自动化测试
  2. LazyInitializationException的四个解决方案–第2部分
  3. 查看您的Solr缓存大小:Eclipse Memory Analyzer
  4. 推土机:将JAXB对象映射到业务/域对象
  5. 使用ANTLR和Java创建外部DSL
  6. 使用Java WebSockets,JSR 356和JSON映射到POJO的
  7. 使用Spring Security添加RememberMe身份验证
  8. 使用JSF的面向服务的UI
  9. 完整的Web应用程序Tomcat JSF Primefaces JPA Hibernate –第2部分
  10. Java中的生成器设计模式