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的使用和基础语法的更多相关文章

  1. sass的安装和基础语法

    安装 下载ruby安装包[官网非常慢ruby官网] ruby-2.3.3-x64-mingw32.7z 下载sass sass-3.7.4.gem 方法一: ruby压缩包,解压即可,在bin目录下, ...

  2. 关于sass的介绍和基本语法

    引入 什么是sass?sass是css预处理器. 那预处理器又是什么?css本身不是一种编程语言,而预处理器是用一种专门的编程语言,进行网页样式设计,然后再编译成正常的CSS文件. 如今主流的预处理器 ...

  3. Swift与C#的基础语法比较

    背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

  4. iOS-----正则表达式的基础语法

    正则表达式简单语法总结 一.什么是正则表达式 从概念上来说,正则表达式也是一门小巧而精炼的语言,它可以用来简化检索特定的字符串,替换特定字符等功能,有许多开发语言工具,都内嵌支持正则表达式.那么一个正 ...

  5. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  6. emmet 系列(1)基础语法

    emmet 系列(1)基础语法 emmet 是一个能显著提升开发html和css开发效率的web开发者工具 emmet基本上目前已知的编辑器都有相应的插件,各个编辑器的emmet插件的下载地址:点我下 ...

  7. Scala基础语法 (一)

    如果你之前是一名 Java 程序员,并了解 Java 语言的基础知识,那么你能很快学会 Scala 的基础语法. Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的. 我 ...

  8. Java基础语法

    java基础学习总结——基础语法1 一.标识符

  9. javascript中正则表达式的基础语法

    × 目录 [1]定义 [2]特点 [3]元字符[4]转义字符[5]字符组[6]量词[7]括号[8]选择[9]断言[10]模式[11]优先级[12]局限性 前面的话 正则表达式在人们的印象中可能是一堆无 ...

随机推荐

  1. 浅谈AngularJS中的$parse和$eval

    AngularJS的初学者常常会对$parse和$eval两个内建服务感到有些困惑,今天我们就来说说AngularJS中的$parse和$eval. 总的来说,$parse和$eval都是作用于Ang ...

  2. [Qt5] Develop openCV3 by QML on Qt-creator

    QML的酷炫控件,适合移动设备开发. qt-creator的跨平台是QML与opencv的粘合剂. 关键: QImage有若干种格式,转化为相应的Mat. Mat处理完后,还要正确得还原为原来格式的Q ...

  3. 12个新潮的 HTML5 & CSS3 网站设计欣赏

    响应式设计和基于 HTML5 & CSS3 编码的网站是为网站制作的理想解决方案. HTML5 & CSS3 制作出来的网站结构良好,有很多惊人的效果,并能够在任何设备上浏览. 今天, ...

  4. Elasticsearch 安装与启动

    平台支撑 ES支持在不同的平台上运行,下面这幅图中,对号标记的是经过测试的平台,其他的也可以运行,但是可能会出现BUG. 下载与安装 在官网下载地址就可以进行下载. 然后解压,进入bin目录,运行下面 ...

  5. 一图看懂host_only nat bridge拓扑结构

    VMware三种模式 我们在使用VMware时经常能看到三种网络的连接模式:Bridged  Host-Only Nat,它们都有什么作用,网络拓扑是怎样的?怎样才能让他们上网,他们相互间能不能相互访 ...

  6. URL,URI和URN的理解

    我想很多人和我一样弄不清楚URI和URL之间的区别,有人可能觉得这是统一概念的不同表述而已. 我们先看看定义: URI:Uniform Resource Identifier,即统一资源标志符,用来唯 ...

  7. Razor语法中链接的一些方法

    在Razor中,有HTML.ActionLink和 Url.Action来呈现链接.它们有什么区别呢.能分清了,就知道在什么情况之下使用它们了. 首先来看html.ActionLink,这个方法重载挺 ...

  8. Winform开发框架中实现同时兼容多种数据库类型处理

    在很多应用系统里面,虽然一般采用一种数据库运行,但是由于各种情况的需要,可能业务系统会部署在不同类型的数据库上,如果开发的系统能够很方便支持多种数据库的切换,那可以为我们减少很多烦恼,同时提高系统的适 ...

  9. asp.net获取站点根目录下子目录的名称

    使用Visual Studio建立一个.aspx文件(Web Forms),例如hovertree.aspx,在页面上加入一个ListBox代码如下: <asp:ListBox runat=&q ...

  10. MVP 2015社区大讲堂之:在ASP.NET应用中执行后台任务

    昨天下午,在微软的MVP 2015社区大讲堂上给大家分享了一个题目:在ASP.NET应用中执行后台任务.这是一点都不高大上,并且还有点土气的技术分享.不过我相信很多人都遇到过这样的问题. 虽然是一个很 ...