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]局限性 前面的话 正则表达式在人们的印象中可能是一堆无 ...
随机推荐
- SQL Server 2014新特性——基数评估(白皮书阅读笔记)
基数评估 目录 基数评估 说明 基数评估准确的重要性 模型假设 启用新的基数评估 验证基数评估的版本 在迁移到新的基数评估前要测试 校验基数评估 偏差问题 需要手动处理的变化 避免因为新的CE造成性能 ...
- 使用ajax提交form表单,包括ajax文件上传
前言 使用ajax请求数据,很多人都会,比如说: $.post(path,{data:data},function(data){ ... },"json"); 又或者是这样的aja ...
- [Java 基础]运算符和表达式
Java运算符 (1)赋值操作符 赋值操作符(=)表示:取右边的值(即右值),把它复制给左边(即左值). 右值可以是任意的常量.变量或表达式(只要可以生成一个值). 左值必须是一个明确的.已命名的变量 ...
- Elasticsearch 之 数据索引
对于提供全文检索的工具来说,索引时一个关键的过程——只有通过索引操作,才能对数据进行分析存储.创建倒排索引,从而让使用者查询到相关的信息. 本篇就ES的数据索引操作相关的内容展开: 更多内容参考:El ...
- 12种JavaScript MVC框架之比较
Gordon L. Hempton是西雅图的一位黑客和设计师,他花费了几个月的时间研究和比较了12种流行的JavaScript MVC框架,并在博客中总结了每种框架的优缺点,最终的结果是,Ember. ...
- vue之watch用法
对应一个对象,键是观察表达式,值是对应回调.值也可以是方法名,或者是对象,包含选项.在实例化时为每个键调用 $watch() ; //使用官方vue-cli脚手架书写<template> ...
- 拓扑排序 --- hdu 4948 : Kingdom
Kingdom Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- DirectShowNet 使用摄像头录像+录音
http://www.cnblogs.com/endv/p/6052511.html // ------------------------------------------------------ ...
- C#协变和逆变
我们知道在C#中,是可以将派生类的实例赋值给基类对象的.
- JS虚拟键盘
由于是触摸屏,所以需要一款JS虚拟键盘.上网找了一个好用的VirtualKeyboard,作了修改. 修改该插件参考的博客文章:http://www.cnblogs.com/xinggong/arch ...