• 易于书写阅读的CSS开发工具——SASS


    最近接触了一款css预处理器——SASS,并部署应用于新项目中
    目前体验上非常满意,达到了预想中的效果,个人感觉比以前用过的LESS语言更加丰富、更加优秀、更具有性价比
     

    SASS简化了我们的css工作流,在样式设计时更轻松,并且更易于日常阅读维护

    css本身是层叠样式表,并不算一门编程语言,为了丰富它的编程元素,于是出现了专为css而生的css预处理器,某种程度上也可以理解为编程语言
    而SASS正是其中之一,它提供了变量、继承、语句等多样化用法,像编程语言一样书写css
     

    SASS的安装与使用

    安装

    首先需要安装ruby,然后才可以安装SASS

    ruby是啥楼主不懂也不关心,只知道SASS是ruby开发的,写SASS不需要懂ruby,但是想安装SASS得先安装ruby

    网上下载一个适合自己开发环境的Ruby版本,安装后运行命令行

    gem -v
    ruby -v

    运行成功后返回版本号

    本来可以直接安装SASS

    gem install sass

    因为被墙应该不会成功,于是只好迂回到淘宝RubyGems镜像安装SASS

    gem sources --remove https://rubygems.org/
    gem sources -a https://ruby.taobao.org/
    gem sources -l

    运行成功最后返回源指向路径,注意源指向路径必须为唯一

    再次安装SASS

    gem install sass

    升级SASS

    gem update sass

     

    使用

    运行命令行直接看编译后的css代码,这样并没什么实际作用

    sass init.sass

    把SASS文件编译转化为css文件

    sass init.scss init.css

    我们有SASS作为开发文件,所以一般在编译CSS文件时候直接选择压缩

    sass --style compressed init.sass init.css

    SASS提供了四种编译风格,自己私下可以逐一体验

    nested:嵌套并且缩进,默认值
    expanded:嵌套但不缩进
    compact:简洁格式
    compressed:压缩

    监听SASS文件,发生变动时自动编译转化为css文件

    sass --watch init.scss:init.css --style compressed
    

    编译过程中,如有语法错误则会编译失败,命令行与css文件都会提供具体错误信息

    安装WebStorm编辑器

    Sublime、Dreamweaver都弱爆了,下载安装个WebStorm编辑器才能和SASS好好玩耍

    国际惯例,晒一下WebStorm编辑器

    注意文件开头声明UTF8编码,不然注释里如有中文编译时会报错

    @charset "utf-8"
    

    Sublime编辑器安装SASS插件

    Package Control组件安装

    首先,【Ctrl+`】调出 Sonsole(QQ输入法快捷键会冲突,只能先去系统的输入法属性设置里取消热键切换至QQ拼音法了)

    然后,粘贴如下代码,回车

    sublime 2
    import urllib2,os; pf='Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler( ))); open( os.path.join( ipp, pf), 'wb' ).write( urllib2.urlopen( 'http://sublime.wbond.net/' +pf.replace( ' ','%20' )).read()); print( 'Please restart Sublime Text to finish installation')
    sublime 3
    import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())

    最后,按提示重启,【Ctrl+Shift+P】调出命令面板输入 install,在下拉提示列表中选择 Install Package,输入 sass,在下拉提示列表中选择 SASS

    SASS语法

    基本用法

    变量

    $cl: #333
    body
    	color: $cl

    计算

    $sz: 14px
    $ln: $sz * 1.5

    嵌套(选择器、属性、伪类三种嵌套方式)

    .index
    	border: 1px solid #ccc
    		top: 3px solid #999
    		radius: 5px
    	a
    		color: #666
    		&:hover,&.active
    			#333

    注释

    /* 首页 */
    //导航条

    代码重用

    继承

    html
    	height: 100%
    
    .index
    	@extend html

    混合

    @mixin txt ()
    	overflow: hidden
    	white-space: nowrap
    	text-overflow: ellipsis
    
    @mixin rads ($v: 2px)
    	-webkit-border-radius: $v
    	-moz-border-radius: $v
    	border-radius: $v
    
    .index
    	 200px
    	@include txt
    	@include rads(50%)

    文件引用

    @import '../base/set'
    

    高级语句

    条件

    $cl: #333
    .index
    	@if lightness($cl) > 30%
    		color: #666
    	@else
    		color: #999

    循环语句

    @for $i from 1 to 10
    	.module_#{$i}
    		background: url(../image/module_#{i}.png) 50% no-repeat
    
    $i: 0
    @while $i < 10
    	$i: $i + 1
    	.module_#{$i}
    		background: url(../image/module_#{i}.png) 50% no-repeat
    
    $arr: (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
    @each $i in $arr
    	.module_#{$i}
    		background: url(../image/module_#{i}.png) 50% no-repeat

    自定义函数

    @function large ($v)
    	@return $v * 1.5
    
    .index
    	font-size: large(14px)
    还有颜色函数等,暂时没用得上的切合场景,API不算很少;SASS/SCSS/LESS不能直接与CSS比较谁更好,SASS/SCSS/LESS只是丰富CSS书写方式的工具,最终页面引用文件还是需要编译转化后的CSS文件
  • 相关阅读:
    一个先进的App框架:使用Ionic创建一个简单的APP
    Hexo NexT 博客本地搭建指南
    Spring Boot 2.0 入门指南
    1. 初识 Lucene
    Spring Framework 简介
    电脑软件推荐安装列表
    PHP 环境搭建篇
    C++ STL 容器之栈的使用
    0x02 译文:Windows桌面应用Win32第一个程序
    反射?切面?怎样对公共参数及行为进行封装
  • 原文地址:https://www.cnblogs.com/johnl/p/4552352.html
Copyright © 2020-2023  润新知