Sass的使用和基础语法
sass安装
- 官网下载ruby的windows安装包,安装时勾选上添加到环境变量add ruby executables to your path。安装完成后打开命令行,
ruby -v输出内容则安装完成。 - 添加国内sources,安装sass
gem sources --remove https://rubygems.org/
gem sources -a http://gems.ruby-china.org 国内的镜像
gem sources -l 查看current sources
gem install sass 安装sass
sass -v 查看sass版本
其他命令
gem update 一段时间后更新所有的ruby程序
gem list 列出本地安装的所有ruby程序包
gem install sass --version=3.3.0 安装特定版本的ruby程序包
gem uninstall sass --version=3.3.0 删除某一版本的ruby程序包
gem uninstall sass 删除sass
compass安装
gem install compass
compass -v
compass create project_name 创建一个项目
compass watch 实时监听sass文件的变化
Sass基础语法
- sass和scss文件的相互转化
sass-convert main.scss main.sass
sass-convert main.sass main.scss
- 变量
$开头,后面紧跟变量名,而变量值和变量名之间就需要使用冒号(:)分隔开,如果值后面加上!default则表示默认值。
$color:#fff;
$side:left;
//变量引用
.headline{
background-color:$color;
margin-#{$side}:5px; //变量在字符串中,要写在#{}中
}
可以将变量放在一个scss文件中,并用 @import引入,但是这个 @import并不是css中原生的 @import
- 计算
SASS允许在代码中使用算式,并且可以带单位
.headline{
margin:(500px/2);
}
- 引入
Sass的导入(@import)规则和CSS的有所不同,编译时会将@import的scss文件合并进来只生成一个CSS文件。但是如果你在Sass文件中导入css文件如@import 'reset.css',那效果跟普通CSS导入样式文件一样,导入的css文件不会合并到编译后的文件中,而是以@import方式存在。
所有的Sass导入文件都可以忽略后缀名.scss。一般来说基础的文件命名方法以_开头,如_mixin.scss。这种文件在导入的时候可以不写下划线,可写成@import "mixin"多个引入可以用逗号隔开@import "variables","mixin","compass/reset";。 - 嵌套
选择器嵌套
.main-sec{
font-family:$main-sec-ff;
.headline{
font-family: $main-sec-ff;
}
}
属性嵌套(有冒号)
.headline{
font:{
family: $main-sec-ff;
size: 16px;
}
}
父选择器的标识符&
在嵌套的代码块内,可以使用&引用父元素,如a:hover可以写成
a {
color: blue;
&:hover {
color: red;
}
&.active {
color: orange;
}
}
- 注释
- 单行注释
//单行注释,sass文件编译后不保留 - 文档注释
/*文档注释,文件编译后保留.*/
中文的注释必须在scss文件头部启用编码声明:@charset "utf-8";
- 单行注释
- 混合器mixin
@mixin通过 @include来调用。
@mixin col-6{
width: 50%;
float: left;
}
.webdemo-sec{
@include col-6();
&:hover{
background-color: #f5f5f5;
}
}
可以传递参数,参数名以$符号开始,多个参数以逗号分开,也可以给参数设置缺省值。
@mixin col($width: 50%, $float: left){ //冒号后面是默认值
width: $width;
float: $float;
}
- 选择器继承
选择器继承是说一个选择器可以继承为另一个选择器定义的所有样式。这个通过 @extend语法实现。注意:@extend不能继承.A .B{}这样的选择器序列。
.hint{
border:1px solid #f00;
}
.error{
@extend .hint;
color: #f00;
}
//css样式
.hint, .error {
border: 1px solid #f00;
}
.error {
color: #f00;
}
不希望出现在css,仅用于继承的选择器可以使用%
%hint{
border:1px solid #f00;
}
.error{
@extend %hint;
color: #f00;
}
//css样式
.error {
border: 1px solid #f00;
}
.error {
color: #f00;
}
- @media
.webdemo-sec{
@include col-sm();
&:hover{
background-color: #f5f5f5;
}
}
.webdemo-sec{
@include col-sm();
&:hover{
background-color: #f5f5f5;
}
}
//编译得到
@media (min-width: 768px) {
.webdemo-sec {
width: 50%;
float: left;
}
}
- @at-root 跳出嵌套,将样式提升到最外层
.main-sec{
font-family:$main-sec-ff;
@at-root{
.headline{
font:{
family: $main-sec-ff;
size: 16px;
}
}
.detail{
font-size:12px;
}
}
}
//编译得到
.main-sec {
font-family: Arial, Verdana, Helvetica, sans-serif;
}
.headline {
font-family: Arial, Verdana, Helvetica, sans-serif;
font-size: 16px;
}
.detail {
font-size: 12px;
}
- @if指令可以判断变量的值,配套的还有 @else、@else if
@mixin col($width: 50%){
@if $width > 50%{
$width: 50%;
}
width: $width;
float: left;
}
.webdemo-sec{
@include col(80%);
&:hover{
background-color: #f5f5f5;
}
}
//编译得到
.webdemo-sec {
width: 50%;
float: left;
}
以上。
Sass的使用和基础语法的更多相关文章
- sass的安装和基础语法
安装 下载ruby安装包[官网非常慢ruby官网] ruby-2.3.3-x64-mingw32.7z 下载sass sass-3.7.4.gem 方法一: ruby压缩包,解压即可,在bin目录下, ...
- 关于sass的介绍和基本语法
引入 什么是sass?sass是css预处理器. 那预处理器又是什么?css本身不是一种编程语言,而预处理器是用一种专门的编程语言,进行网页样式设计,然后再编译成正常的CSS文件. 如今主流的预处理器 ...
- Swift与C#的基础语法比较
背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...
- iOS-----正则表达式的基础语法
正则表达式简单语法总结 一.什么是正则表达式 从概念上来说,正则表达式也是一门小巧而精炼的语言,它可以用来简化检索特定的字符串,替换特定字符等功能,有许多开发语言工具,都内嵌支持正则表达式.那么一个正 ...
- python之最强王者(2)——python基础语法
背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...
- emmet 系列(1)基础语法
emmet 系列(1)基础语法 emmet 是一个能显著提升开发html和css开发效率的web开发者工具 emmet基本上目前已知的编辑器都有相应的插件,各个编辑器的emmet插件的下载地址:点我下 ...
- Scala基础语法 (一)
如果你之前是一名 Java 程序员,并了解 Java 语言的基础知识,那么你能很快学会 Scala 的基础语法. Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的. 我 ...
- Java基础语法
java基础学习总结——基础语法1 一.标识符
- javascript中正则表达式的基础语法
× 目录 [1]定义 [2]特点 [3]元字符[4]转义字符[5]字符组[6]量词[7]括号[8]选择[9]断言[10]模式[11]优先级[12]局限性 前面的话 正则表达式在人们的印象中可能是一堆无 ...
随机推荐
- MongoDB的学习--索引类型和属性
索引类型 MongDB的索引分为以下几种类型:单键索引.复合索引.多键索引.地理空间索引.全文本索引和哈希索引 单键索引(Single Field Indexes) 在一个键上创建的索引就是单键索引, ...
- jQuery.Deferred 源码分析
作者:禅楼望月(http://www.cnblogs.com/yaoyinglong ) 1 引子 观察者模式是我们日常开发中经常用的模式.这个模式由两个主要部分组成:发布者和观察者.通过观察者模式, ...
- 设计前沿:25个设计师向您展示 iOS 7 界面
我们中的许多人都对新发布的 iOS 7 用户界面有点失望.扎眼的颜色搭配,难看的图标和可疑的设计决策,导致很多的设计师在 Dribbble 和 Behance 等社交网站分享自己对 iOS 界面设计的 ...
- [C++][操作符]四种显示转换操作符
整理了C++ Primer中提到的四种显示转换,用思维导图写出来,是不是很清晰O(∩_∩)O.
- 动画库Animate.css
笔记分享: 用法:到官网(http://daneden.github.io/animate.css/),下载animate.min.css文件.点击这里 1.首先引入animate css文件 < ...
- 使用Python将HTML转成PDF
主要使用的是wkhtmltopdf的Python封装--pdfkit 安装 1. Install python-pdfkit: $ pip install pdfkit 2. Install wkht ...
- 【转载】css3 content 生成内容
content一般和:before,:after一起使用,用来生成内容(img和input没有该属性),content的内容一般可以为以下四种: none: 不生成任何值. attr: 插入标签属性值 ...
- C语言学习001:让程序跑起来
编译工具下载 MinGW - Minimalist GNU for Windows 编译运行 #include <stdio.h> int main(){ puts("C roc ...
- [Asp.net 5] DependencyInjection项目代码分析4-微软的实现(4)
这个系列已经写了6篇,链接地址如下: [Asp.net 5] DependencyInjection项目代码分析 [Asp.net 5] DependencyInjection项目代码分析2-Auto ...
- HTML的checkbox和radio的美化
checkbox和radio的美化 checkbox: <style type="text/css"> input[type="checkbox"] ...