Sass基础知识及语法

sass

Sass是一款强化css的辅助工具,他在css语法中的基础上增加了变量(variables)、嵌套(nested rules)、混合(mixns)、导入(inline impoarts)等高级功能,这些拓展令css更加强大和优雅。使用sass的样式库(如compass)有助于更好的组织管理样式文件,以及更高效的开发项目。

1、特色功能(features)

  • 完全兼容css3
  • 在css基础上增加变量、嵌套(nesting)、混合(mibxins)等功能
  • 通过函数进行颜色值与属性值得运算
  • 提供控制指令(control directives)等高级功能

2、语法格式(stntax)

  • SCSS(Sassy CSS)--这种格式仅在CSS3语法的基础上进行拓展,所有CSS3语法在CSS3语法在SCSS中都是通用的,同时加入Sass的特色功能。此外,SCSS也支持大多数CSS hacks写法以及浏览器前缀写法。这种格式以.scss作为拓展名。
  • Sass,被称为缩进格式(indented Sass)通常简称“Sass”,是一种简化格式。它使用“缩进”代替“花括号”表示属性属于某个选择器,用“换行”代替“分号”分隔属性,很多人认为这样做比SCSS更容易阅读,书写也更快速。缩进格式也可以使用Sass的全部功能,只是与SCSS相比个别地方采取了不同的表达方式。

3、css功能拓展()

  • 嵌套规则:Sass允许将一套css样式嵌套进另一套样式中,内层的的样式将它外层的选择器作为父类选择器,例如:
#main p{color:#00ff00;width:97%;.redbox{background-color:#ff0000;color:#000000;}}

编译为:

    #main p{color:#00ffid00;width:97%;#main p .redbox{background-color:#ff0000;color:#000000;}}

嵌套功能避免了重复输入父选择器,而且令复杂的CSS结构更易于管理。

    #main{ width:97%;p,div{font-size:2em;a{font-weight:bold;}}pre{font-size:3em;}}

编译为:

    #main{width:97%;}#main p,#main div{font-size:2em;}#main p a,#main div a{font-weight:bold;} #main pre{font-size:3em;}
  • 父选择器
    在嵌套CSS规则时,有时也需要直接使用嵌套外层的父选择器,例如,当给某个元素设定hover样式时,或者当body元素有某个classname时,可以用&代表嵌套规则外层的父选择器。
    a{font-weight:bold;text-decoration:none;&:hover{text-decoration:underline;}body.firefox &{font-weight:normal;}}

编译为

   a{font-weight:bold;text-decoration:none;}a:hover{lintext-decoration:underline;}body.firefox a{font-weight:normal;}

编译后的CSS文件中&将被替换成嵌套外层的父选择器,如果含有多层嵌套,最外层的父选择器会一层一层向下传递;

    #main{color: black;a{font-weight:bold;&:hover{color:red;}}}

编译为:

    #main {color:black;}#main a{font-weight:bold;}#main a:hover{color:red;}

&必须作为选择器的第一个字符。其后可以跟随后缀生成复合的选择器,例如:

#main{color:black;&-sidebar{border:1px solid;}
}

编译为:

#main{color:black;}
#main-sidebar{border:1px solid;
}

当父选择器含有不合适的后缀时,Sass将会报错。

  • 属性嵌套
    有些CSS属性遵循相同的命名空间(namespace),比如:font-family,font-size,font-weight都以font作为属性的命名空间。为了便于管理这样的属性,同时也为了避免重复输入,Sass允许将属性嵌套在空间中,例如:
.funky{   font:{family:fantasy;size:30em;weight:bold;}}

编译为

    .funky{font-family:fantasy;font-size:30em;font-weight:bold;}

命名空间也可以包含自己的属性值,例如:

.funky{font:20px/24px{ //字体大小/行高family:fantasy;weight:bold;}
}

编译为:

    .funky{font:20px/24px;font-size:fantasy;font-weight:bold;}
  • 占位符选择器%foo

    Sass额外提供了一种特殊类型的选择器:占位符选择器(placeholder selector).与常用的id与class选择器写法相似,只是#或.替换成了%。必须通过@extend指令调用。

  • 注释/* /与//
    Sass支持标准的CSS多行注释/
    */,以及单行注释//,前者会被完整输出到编译后的CSS文件中,而后者则不会,

  • 变量
    SassScript最普遍的用法就是变量吧,变量以美元符号开头,赋值方法与CSS属性的写法一样。

$width:5em;

直接使用即调用变量:

    #main{width:$width;}

变量支持块级作用域,嵌套规则内定义的变量只能在嵌套规则内使用(局部变量),不在嵌套规则内定义的变量则可在任何地方使用(全局变量)。将局部变量转换为全局变量可以添加!global声明:

    #main{$width:5em !global;width:$width;}#sidebar{width:$width;}

编译为:

    #main{width:5em;}#sidebar{width:5em;}

转载于:https://www.cnblogs.com/hixxcom/p/7260199.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487888.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java王大拿谢大脚_《乡村爱情1》:“王大拿”赵本山有3大亮点,追谢大脚根本不算啥...

《乡村爱情》第一部其实导演并不是赵本山,那时候的他和该剧的导演张惠中是好友关系,里面的各大主演除了“王小蒙”王亚彬外其余都是以赵本山的徒弟为主,很多人都是冲着赵本山的名气来观看这部剧的。其实赵本山在《乡村爱情》第一部中饰演的“…

记忆的天空:智能进化三部曲

作者:钟振余,宁波大学 相对于人工智能的快速发展,人类对于生命智能的理解显得很肤浅。由于缺失大脑活动原理的理论指导,人们只能用知识考试去评判一个人的智能,用相当于几岁孩子的智能去比对某些高级动物的智能。事实上…

day27 CRM delete action 嵌入CRM

课程目录:deleteactionpop up window嵌入crm项目权限(未讲)学员交作业发邮件 代码路径:https://github.com/liyongsan/git_class/tree/master/day27/LuffyCRM 权限预习:http://www.cnblogs.com/alex3714/articles/6661911.html 转…

java中 若干,Java中的随机数发生器。产生若干的复杂性

I am aware that Java uses a Linear congruential generator. My question is- what is the complexity of generating a random number? How do you perform such analyses?解决方案The complexity of generating a random number is O(1). Do you mean "what are its…

收藏!机器学习算法分类图谱及其优缺点综合分析

来源:必达智库近日,Coggle对各类机器学习算法进行了归纳整理,形成了一个较为完整的机器学习算法分类图谱,并对每一类算法的优缺点进行了分析。具体分类如下:正则化算法(Regularization Algorithms&#xff…

StringBuilder String string.Concat 字符串拼接速度再议

首先看测试代码: 1 public class StringSpeedTest2 {3 private readonly static string _testStr "0123456789";4 5 public string StringAdd(int count)6 {7 string str string.Empty;8 for (i…

mysql查询数据为0的所有字段6_MySQL8.0 初级学习笔记(六)查询数据

MySQL8.0 初级学习笔记(六)查询数据MySQL8.0 初级学习笔记(六)查询数据查询有多种方法:单表查询,使用集合函数查询,连接查询,子查询,合并查询结果,为表和字段取别名,使用正则表达式查询一、单表…

特斯拉Autopilot事故频发,真正意义上自动驾驶还要多久问世?

这并不是特斯拉 Autopilot 首次发生事故致死案例。来源:未来汽车科技的新能源汽车更替传统汽车是时代趋势,作为业内先驱,身处聚光灯下的特斯拉不可避免会受到大众关注,例如涉及它的每一次交通安全事件从不会在媒体报道中缺席。据外…

BDD 与DSL 入门

正文: Behavior Driven Development,行为驱动开发是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作。在了解Behavior Driven Development之前,先介绍Test-Driven Development(TDD)即测试…

CICC科普栏目|颠覆认知!看完这些图,你的世界观还好吗?

本文系网易新闻网易号“各有态度”特色内容部分资料来源于网络转自:超级数学建模接下来,仔细看下面的图与文字你会非常震撼……每天,地球上都有这么多的人在飞来飞去,就像下图中一样。▼图中圈圈里头的人口,比其他地区…

python indices_python numpy triu_indices函数

numpy.triu_indices返回函数的上三角矩阵numpy.triu_indices(n,k0,mNone)[source]Return the indices for the upper-triangle of an (n, m) array.Parameters: n : intThe size of the arrays for which the returned indices will be valid.k : int, optionalDiagonal offse…

django-xadmin使用之更改菜单url

环境:xadmin-for-python3 python3.5.2 django1.9.12 1. 在模块的adminx.py文件中增加以下代码: class AdminSettings(object):site_title XXX Data Centersite_footer XXX Inc.# menu_style accordion# 菜单设置def get_site_menu(self):return ({tit…

RISC-V会彻底改变计算吗?

来源:内容由半导体行业观察(ID:icbank)编译自「ACM」,谢谢。微处理器的开放指令集有望重塑计算,并引入新的、更强大的功能。现代计算机依靠许多元件来提供高速和高性能,但是很少有比一台精简的指…

如何将随机数存入数组java_JAVA怎么把随机数赋给数组

JAVA怎么把随机数赋给数组来源:互联网 宽屏版 评论2012-05-29 12:50:14分类: 电脑/网络 >> 程序设计 >> 其他编程语言问题描述:double aMath.random();可以产生个随机数,怎么产生100个这样的随机数然后赋值给数组并输出呢?参考答案:public…

java keystore ca_PKCS12 Java Keystore from CA and User certificate in java

问题Ive recently been put in charge of mocking up an Apple product (iPhone Configuration Utility) in Java. One of the sections Ive been a bit stuck on is a part about Exchange ActiveSync. In there, it allows you to select a certificate from your Keychain t…

干货|六维力和力矩传感器的技术与应用

来源:机器人大讲堂六维力和力矩传感器是一种提供三轴力和三轴力矩反馈的设备,并广泛应用在机器人控制、力学实验和科研等不同的场景中。不同于其他常见的测力仪器,六维力和力矩传感器可以测量完整的六自由度环境力数据,从而使其适…

Spark笔记——技术点汇总

Spark笔记——技术点汇总 目录 概况 手工搭建集群 引言 安装Scala 配置文件 启动与测试 应用部署 部署架构 应用程序部署 核心原理 RDD概念 RDD核心组成 RDD依赖关系 DAG图 RDD故障恢复机制 Standalone模式的Spark架构 YARN模式的Spark架构 应用程序资源构建…

人工智能正在推动芯片的复兴

来源丨Forbes作者丨Rob Toews编译丨科技行者半导体是数字时代的一项基础技术。美国硅谷的名字正是源自于此。过去半个世纪以来,计算技术的革命改变着社会的方方面面,而半导体技术正是这场革命的核心。自英特尔1971年推出全球第一个微处理器以来&#xff…

java integer 包_java之学习基本类型包装类的概述及Integer类的概述和构造方法

基本类型包装类的概述A:为什么会有基本类型包装类* 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。* B:常用操作* 常用的操作之一:用于基本数据类型与字符串之间的转换。* C:基本类型和包装类的对应byte Byteshort …

UVA3942 Remember the Word

题意&#xff1a;输入一个字符串(l<300000)&#xff0c;一个n(n<4000)&#xff0c;接下来n个字符串(l<100)&#xff0c;问能分解成几种字符串 题解&#xff1a;直接计算复杂度高&#xff0c;考虑DP&#xff0c;dp[i]代表以第i个字符开头的字符串分解的方案数&#xff…