Sass初使用
看慕课网materliu前辈的sass教程,http://www.imooc.com/learn/364。顺便把刚做完的项目重构一下,然后把一些笔记和心得都写在这里~
首先安装sass,这里直接参考 大漠前辈的安装教程 http://www.w3cplus.com/sassguide/install.html。
然后安装compass, 在ruby command 里面打命令,gem install compass 就好了;就现阶段来说,对compass理解的不是很多,看完sass那个视频之后就觉得暂时只是用来编译scss文件和压缩css(雾)。
compass指令:
compass create compass;
compass watch;
sass语法:
当文件不用编译的时候,可以用_前缀下划线来标记然后命名,通常函数或者变量都放在一个文件夹里面。
文件引进来可以用import ,文件名后缀可以不用写, 然而这个不是css原生的import。
css原生的import两大弊端:1、一定要放在代码最前面。2、对性能不利。如果真的要使用原生的import,那么就要:1、以css结尾的时候。2、http://开头。3、URL()函数。4、带有media queries。
sass变量:好东西,譬如每次找颜色的时候,颜色代码都记不住,如果用变量的话就不用这么慢慢找颜色代码了,直接看一下变量文件,一目了然咯。
特殊变量,在特定情况下使用的变量;
eg:
//普通变量及其使用
$common-ff :"微软雅黑"; //字体设置
body{
font-family: $common-ff;
}
//css输出----
body{
font-family: "微软雅黑";
} //特殊变量
$direction: top;
//应用于class和属性
.border-#{$direction}{
border-#{$direction}:1px solid #ccc;
}
//应用于特殊属性同理
多值变量:顾名思义就是多个值咯。譬如 0 1px 2px 3px之类的。里面的函数有很多,暂时只用过append($list,$value,[$separator]),这个函数。
mixin:通过@mixin声明,@include 调用;
以前在做项目的时候用手淘的flexible写了很多这样的样式
button,input,textarea{
font-size: 12px;
}
[data-dpr="2"] button,
[data-dpr="2"] input,
[data-dpr="2"] textarea{
font-size: 24px;
}
[data-dpr="3"] button,
[data-dpr="3"] input,
[data-dpr="3"] textarea{
font-size: 36px;
}
这样写太麻烦了,然后学了sass之后就参考手淘他们写的混合宏自己写了一个
@mixin property-dpr($property,$px-values){
//判断参数是不是单个数字,若是
@if type-of($px-values) == "number"{
#{$property}: $px-values;
[data-dpr="2"] & {
#{$property}: $px-values * 2;
}
[data-dpr="3"] & {
#{$property}: $px-values * 3;
}
}
//若为数组则
@else {
//新建两个空数组
$twodpr-values:();
$threedpr-values:();
//遍历多值变量
@each $value in $px-values{
$twodpr-values:append($twodpr-values,$value*2);
$threedpr-values:append($threedpr-values,$value*3)
}
// 返回处理后的多值变量
#{$property}: $px-values;
[data-dpr="2"] & {
#{$property}: $twodpr-values;
}
[data-dpr="3"] & {
#{$property}: $threedpr-values;
}
}
}
css、sass生成代码:
//调用mixin
div{
@include property-dpr(font-size,12px);
}
//css style
div {
font-size: 12px;
}
/* line 7, ../../sass/common/_mixin.scss */
[data-dpr="2"] div {
font-size: 24px;
}
/* line 10, ../../sass/common/_mixin.scss */
[data-dpr="3"] div {
font-size: 36px;
}
今天就先到这里咯。
Sass初使用的更多相关文章
- SASS初体验
SASS初体验 标签(空格分隔): sass scss css 1. 编译环境 需要安装Ruby,之后需要打开Start Command Prompt with Ruby运行 gem install ...
- Sass初入门
什么是CSS预处理器? CSS预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为CSS增加了一些编程的特性,将CSS作为目标生成文件,然后开发者就只要使用这种语言进行编码工作. 什 ...
- 安装Sass的一些注意事项
文章的内容都来自网络: 1. RubyGems 镜像 2. compass watch,我们的Sass种如果出现了中文, 就会出现编译错误,我们需要: 找到ruby的安装目录,里面也有sass模块, ...
- sass 安装与使用
1.安装. 安装ruby :http://rubyinstaller.org/downloads 创建项目:在f盘创建一个名为sass的文件夹 ruby命令行:f: ruby命令行:cd sass r ...
- Taro开发微信小程序的初体验
了解Taro 听说Taro是从几个星期前开始的,在一次饭桌上,一个小伙伴说:"Hey, 你听说了Taro么,听说只需要写一套程序就可以生成H5,小程序以及RN的代码模板,并且类似于React ...
- ionicframework I ------------- 初体验
ionicframework I ------------- 初体验 Create hybrid mobile apps with the web technologies you love. Fr ...
- wepack+sass+vue 入门教程(三)
十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...
- wepack+sass+vue 入门教程(二)
六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...
- wepack+sass+vue 入门教程(一)
一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...
随机推荐
- TSQL Merge On子句和When not matched 语义理解
Merge 的On子句指定Match condition,When子句指定过滤条件,如果Source Table和Targe Table匹配的上,很好理解:如果匹配不上,必须深入理解不匹配的条件,否则 ...
- LINQ系列:Linq to Object分区操作符
分区是指将一个单一的输入序列划分成两个或多个部分或序列,同时不会对输入元素重排序,返回一个新形成的部分.LINQ分割操作符包括Skip.SkipWhile.Take和TakeWhile. 1. Ski ...
- 深入理解ajax系列第一篇——XHR对象
× 目录 [1]创建对象 [2]发送请求 [3]接收响应[4]异步处理[5]实例演示 前面的话 ajax是asynchronous javascript and XML的简写,中文翻译是异步的java ...
- Oracle_SQL函数-单行函数
SQL函数 SQL函数分类 SQL函数主要有两种,分为单行函数.多行函数 单行函数:只对一行进行变换,每行返回一个结果.可以转换数据类型,可以嵌套参数可以是一列或一个值 多行函数:多行函数,每次对一组 ...
- Objective-C中的继承和多态
面向对象编程之所以成为主流的编程思想和他的继承和多态是分不开的,只要是面向对象语言都支持继承和多态,当然不同的OOP语言之间都有其特点.OC中和Java类似,不支持多重继承,但OOP语言C++就支持多 ...
- Java中的网络编程
Java中的网路编程主要是Java的Socket编程,属于JavaEE中的高级的部分,以下内容是对java网路编程的一个小结,代码都是经过编译调试的 C/S程序应用:客户/服务器模式,如QQ客户端 ...
- 用队列模拟jquery的动画算法
Aaron最近疯狂的爱上了算法研究,估计又要死伤不少脑细胞了,我喜欢捡现成的,可以省些力气.发现他写的一段源码,运行一下,还蛮好玩的,于是拿来分析一下,一来吸收下里边的营养,二来加深一下源码学习的功力 ...
- 原创:微信小程序源码解说:石头剪刀布(附源码下载)
我的博客:来源链接 昨天看有个石头剪刀布的练习,就拿出来做了一下,布局的代码浪费了很多时间,果然CSS这块的还不是很熟练,下面直接上图上代码了. JS: var numAi = 0 var timer ...
- 关于Java中的final关键字
Java中的final关键字是用来限制用户行为的,说白了,就是用来限制我们这些程序员的.final可以用来修饰:变量.方法.类. 1)Java final variable final用来修饰变量时, ...
- ASP.NET的session操作方法总结
在开发ASP.NET程序时,需要对相关数据进行缓存,缓存较多的主要是用户的身份信息,现提供几个对session操作较为常用的方法: 1.添加session,对设置对应的时间: /// <summ ...