zoukankan      html  css  js  c++  java
  • FE: Sass and Bootstrap 3 with Sass

    Sass简介

    Sass是CSS的预处理语言;提供了变量定义、函数定义、函数调用、类继承、嵌套(CSS层级关系)及代码引入功能。

     

    Sass安装指南

    MAC

    OS X 10.10.3
     
    终端
    1 -> gem -v
    2    2.0.14
    3 
    4 -> sudo gem install sass
    5  
    6 -> sass -v
    7    Sass 3.4.13 (Selective Steve)

     

    WIN

    Windows 7 x64

    需要安装ruby,然后就可以使用gem了。ruby传送门:http://rubyinstaller.org/

    命令行

    1 -> gem -v
    2    2.4.5
    3    
    4 -> gem sources -l
    5    *** CURRENT SOURCES ***
    6    https://ruby.taobao.org/ 
    7    
    8 -> gem install sass

    PS:

    1. 强烈建议将gem sources改为https://ruby.taobao.org/;改的方法参考后文“MAC可能遇到的错误”中的命令

    2. 若添加https://ruby.taobao.org/后,仍然出错,使用gem sources -l命令查看当前所有源,使用gem sources --remove将默认源删除

    MAC可能遇到的错误

    sudo gem install sass时出现错误
    1. ERROR:  Could not find a valid gem 'sass' (>= 0), here is why:
              Unable to download data from https://rubygems.org/ - Errno::ETIMEDOUT: Operation timed out - connect(2) (https://rubygems.org/latest_specs.4.8.gz)
     
    原因:被和谐了
    解决:更改ruby源
     
    1 -> gem sources
    2    https://rubygems.org/
    3 -> gem sources --remove https://rubygems.org/
    4 -> gem sources --a https://ruby.taobao.org/
     
    2. ERROR:  While executing gem ... (NoMethodError) undefined method `size' for nil:NilClass
     
    原因:缓存问题
    解决:clear gem cache
     
    1 -> cd /Library/Ruby/Gems/2.0.0/cache
    2 -> sudo rm sass-3.4.13.gem

     

    Bootstrap with Sass安装指南

    MAC

    1 -> gem install bootstrap-sass -v 3.3.2.0
    2 -> cd /Library/Ruby/Gems/2.0.0/gems/bootstrap-sass-3.3.2.0/assets/stylesheets

    WIN

    1 gem install bootstrap-sass -v 3.3.2.0
    2 cd C:Ruby22-x64lib
    ubygems2.2.0gemsootstrap-sass-3.3.2.0assetsstylesheets

    PS:Ruby22-x64是Ruby安装文件夹

    bootstrap with sass相关文件在stylesheets文件夹下,拷贝到自己项目下使用即可;如下图所示。PS:我把stylesheets改名成了bootstrapSass :)

     

    Sass使用指南

    <最重要的事项开头说>Sass编译输出css
    1 -> sass sample.scss output.css

    如开篇所说Sass是CSS的扩展语言,其提供了变量定义、函数定义、函数调用、类继承、嵌套(CSS层级关系)及代码引入功能,下面逐一介绍其功能用法。

    变量定义:$

    sample.scss

    1 $border-radius-base: 4px !default;

    函数定义:@mixin

    sample.scss

    1 @mixin border-left-radius($radius) {
    2   border-bottom-left-radius: $radius;
    3      border-top-left-radius: $radius;
    4 }

    函数调用:@include

    sample.scss

    1 .front-btn-group {
    2   @include border-left-radius(0);
    3 }

    output.css

    1 .front-btn-group {
    2   border-bottom-left-radius: 0;
    3   border-top-left-radius: 0;
    4 }

    类继承:@extend

    sample.scss

    1 .message {
    2   border: 1px solid #ccc;
    3   padding: 10px;
    4   color: #333;
    5 }
    6 .success {
    7   @extend .message;
    8   border-color: green;
    9 }

    output.css

    1 .message, .success {
    2   border: 1px solid #ccc;
    3   padding: 10px;
    4   color: #333; }
    5 
    6 .success {
    7   border-color: green;
    8 }

    PS:Sass3.4.13(截止目前最新版)在media query中不能使用@extend

    嵌套

    sample.scss

    1 .front-btn-group {
    2   .btn {
    3       border: 1px solid #ccc;
    4   }
    5 }

    output.css

    1 .front-btn-group .btn {
    2   border: 1px solid #ccc;
    3 }

    &引用父类

    sample.scss

    1 .front-btn-group .btn:first-child {
    2     margin-left: 0;
    3     &:not(:last-child) {
    4         @include border-right-radius(0);
    5     }
    6 }

    output.css

    1 .front-btn-group .btn:first-child {
    2   margin-left: 0;
    3 }
    4 .front-btn-group .btn:first-child:not(:last-child) {
    5     border-bottom-right-radius: 0;
    6     border-top-right-radius: 0;
    7 }

    代码引入:@import

    sample.scss

    1 @import "bootstrapSass/bootstrap/mixins/border-radius";
    2 .front-btn-group {
    3   @include border-left-radius(0);
    4 }
    output.css
    1 .front-btn-group {
    2   border-bottom-left-radius: 0;
    3   border-top-left-radius: 0;
    4 }
    PS:
    1. border-left-radius定义在_border-radius.scss文件中
    2. @import引入能产生css代码的scss文件,则被引入scss文件所产生的css也会被引入到当前scss生成的css文件中
    3. 至于不能产生css代码的scss文件,参考bootstrap,如纯$变量定义文件:_variables.scss,如纯mixins定义文件:_border-radius.scss
     

    结语

    Sass入门相对简单,官方短短几屏介绍,已将Sass的功能全数道来,可能是因为CSS语言本身简单吧
     

    资料

    http://sass-lang.com/:Sass main page
    http://sass-lang.com/guide:Sass official guide
    http://www.ruanyifeng.com/blog/2012/06/sass.html : 阮一峰 SASS用法指南
  • 相关阅读:
    Mysql.linux登录数据库
    Linux.vim编辑器显示行号
    经济学-泰勒
    MyBatis.多条件排序
    Mysql.复选条件的查询
    前端.省市级联框
    前端.解决form-contral总是换行问题
    若依框架. 仿ThymeLeaf前端SelectDictLable方法
    excel中为什么不显示单引号
    python-爬虫(3)---lxml匹配css
  • 原文地址:https://www.cnblogs.com/hzhesi/p/4489782.html
Copyright © 2011-2022 走看看