关于sass的基础语法介绍
2018-06-24 00:38:17来源:未知 阅读 ()
注:主要作为记录用
前言:
sass是css预编译工具中的一种,结合compass使用可以大大加快css开发的速度,同时也可以解决一些css开发里比较难受的点。使用sass可以使css的开发对编程人员更友好。
安装和使用:
sass基于ruby,首先需要去ruby官网下载安装ruby。ruby下载地址.
下载安装过程很简单,记得勾选添加到PATH。之后就可以在命令行里通过 ruby -v 来查看是否安装成功。
然后就可以使用gem包管理工具了 因为容易被墙 需要换源:
gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
可能会碰到SSL证书问题, 改为 http://gems.ruby-china.org/
之后用gem install sass 安装sass
同时可以用gem install compass 安装compass
成功后就可以使用了,可以在一个目录下,使用 compass create projectName 来新建一个sass项目
然后使用 compass watch可以监听并且实时reload项目 得到编译后输出的css文件。
关于cpmpass的使用会在之后总结。先来讲讲Sass。
Sass语法:
注: sass因为历史原因存在scss以及sass两种文件后缀名,采用了不同的语法。sass使用缩进来进行嵌套,语法简洁开发高效,但是非常用者难以阅读。scss语法类似css的嵌套,方便阅读,本文均采用scss。
本文的介绍按照常用程度来,只记录了一些常用核心功能,详细介绍请阅读官方文档
变量:
抽象出网页上需要复用的样式,定义成变量。
变量像这样: $screen-ff: Arial;
使用变量: .screen {font-family: $screen-ff;}
会被自动编译为: .nav {height: Arial;}
一般把变量定义放在一个单独的文件里,例如_variables.scss(文件名字前加下划线说明是个模块,模块与待编译文件不能重名)然后用@import "variables"方法导入。
@import 与css原生的指令不同。
嵌套:
.screen {
height: $screen-ff;
.head {
font-size: 14px;
}
}
输出为:
.screen {
height: Arial;
}
.screen .head {
font-size: 14px;
}
属性也可以嵌套:
.head {
font: {
family: $screen-ff;
size: 14px;
}
}
这样的嵌套可能会引发问题:
a {
:hover {
color: #66ccff;
}
}
输出为:
a :hover {
color: #66ccff;
}
这会让a标签里包含的子级标签获得此样式,这不是我们想要的结果,此时需要使用&来确认引入父级标签
改写为:
a {
&:hover {
color: #66ccff;
}
}
输出变为:
a:hover {
color: #66ccff;
}
mixin:
一般在遇到网页上有重复功能的div的时候,使用mixin来构建一个模板,进行复用。mixin也可作为局部文件引入
示例:
@mixin col ($width: 50%) {
width: $width;
float: left;
}
这个方法用于设置一个模块占屏比,在传参的时候可以设置默认参数。
使用:
.body {
@include col(25%);
}
输出:
.body {
width: 25%;
float: left;
}
extend:
大家都熟悉的继承,当想要构建一些新的元素,又存在了类似元素的时候,可以通过继承来简化代码结构,加快开发和运行。
比如存在这样一个样式:
.danger {
color: #f00;
}
我们想加一个更高程度的样式:
.danger-serious {
color: #f00;
border: 2px #f00;
}
这样就出现了代码冗余,通过extend改造:
.danger {
color: #f00;
}
.danger-serious {
@extend .danger;
border: 2px #f00;
}
输出为:
.danger, .danger-serious {
color: #f00;
}
.danger-serious {
border: 2px #f00;
}
如果不需要使用.danger样式,可以把.error改为%eroor,只用来继承,自身不输出(类比构造函数?)
可能要比较复杂的样式才能体现出extend的威力...
extend与类的继承不同,更像是接口的继承,用于引入父级样式类的所有属性。
此外,extend不能继承嵌套的选择器序列。
sass的基本语法就说这些。此外sass还有很多自带的函数,用于构建更加庞大的插件模块,作为开发者的我们自己去编写这些插件是很低效的,所以我们一般使用Compass框架来提高sass的使用效率。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:网页响应式媒体查询
- css与javascript重难点,学前端,基础不好一切白费! 2020-06-11
- HTML基础教程_1 2020-06-09
- HTML基础02 2020-06-09
- HTML基础01 2020-06-07
- [03]HTML基础之行内标签 2020-06-01
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash