sass(scss)10大常用重要特性
用sass用了好久,期初看中的是他的嵌套功能,因为刚开始的时候是用jquery,电脑安装Ruby,全局安装sass,将scss编译为css,
不得不说真的很方面,节点套节点,和html的很类似。但是后来用了vue等框架后,嵌套功能远远不能满足需求。做移动端,需要适配,当
时抛弃了rem,使用vw,但是如果每个自己计算就很麻烦,当时想的是要是css可以像js那样,写一个函数转换,然后调用函数就好了。于
是初识了sass的函数,此后还有变量什么的。最近花了点时间,将sass全看了一遍,做一下总结吧
以下是我项目中用的比较多,或者个人觉得比较重要的特性。
1.(节点)可嵌套性(这个是基础,用的太多太多了,必须掌握)
2. 变量:变量以$开头(通常网站会有基础变量,譬如基础字体,基础色调等,可以将他们赋值给一个变量,以后调用变量就好了,很类似js里的变量)
3. Mixins(混合@mixin):可重用性高,可以注入任何东西
注意点: 1.可以相互调用,但是不能拿自己调用自己,形成递归
2.通过@include引用
例子:
@mixin banner {
width: 100%;
position: relative;
color: $deeepBlue;
.banner-content {
position: absolute;
top: 50px;
width: 100%;
}
}
.lead-banner {
@include banner;
}
4. @extend:允许一个选择器继承另一个选择器
例子:
.a1 {
color: blue;
}
.a2 {
@extend .a1;
font-size: 12px;
}
5. @function:函数功能,用户使用@function可以去编写自己的函数(常用)
使用语法: 使用 @function+函数名称,每个函数都需要有返回值的内容
例子:
@function du($r) {
@return $r*2
}
.a8 {
border: solid #{du(2)}px red;
}
6. 引用父元素&:在编译时,&将被替换成父选择符(常用)
例子:
a {
font-size: 20px;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
编译后:
a {
font-size: 20px;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
7. 计算功能(会用 但是不多吧)
例子:
p {
margin: 20px + 30px;
width: (100% / 6);
}
编译后:
p {
margin: 50px;
width: 16.6666666667%;
}
8. 组合连接: #{} : 变量连接字符串(目前用到的是这个)
例子:
$name: foo;
$attr: border;
p.#{$name} {
#{$attr}-color: blur;
}
被编译为:
p.foo {
border-color: blur;
}
9. 循环语句:(很少用到)
例子:
@for $i from 1 to 10 {
.a5_img#{$i} {
background-image: url('images/img#{$i}.png');
}
}
@while $j>0 {
.a5_img#{$j} {
background-image: url('images/img#{$j}.png');
}
$j:$j - 1;
}
@each $item in 1,2,3,4,5 {
.a5_img#{$item} {
background-image: url('images/img#{$item}.png');
}
}
10. if语句:(很少用到)
例子:
@mixin bgcolor($b) {
@if($b==5) {
background-color: #fff;
} @else if($b == 6) {
background-color: green;
} @else {
background: blue;
}
}
总结1: 目前用的最多的或者个人觉得比较重要点,以后可能会用到的大概是这10个吧,sass还有其他的特性,这是我自己总结出来的觉得
比较nice的。还有一点需要注意,引用sass是使用@import,sass编译有一个特点,就是当一个sass或scss的文件名以下划线_
开头,那么这个文件就不会被编译。一般定义基础样式的时候会选择这个。
总结2: sass与scss的区别:(其实是一种东西)
1. scss是sass3引入的新语法,语法完全兼容css3, 继承了sass的功能
2. scss和sass大部分语法相同,唯一不同的是,scss需要使用分号和花括号,sass是以严格的缩进式语法缩写---换行和缩进
3. 文件扩展名不同
sass(scss)10大常用重要特性的更多相关文章
- 【Sass/SCSS】我花4小时整理了的Sass的函数
[Sass/SCSS]我花4小时整理了的Sass的函数 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 Sass 定义了各 ...
- sass/scss 和 less的区别
一. Sass/Scss.Less是什么? Sass (Syntactically Awesome Stylesheets)是一种动态样式语言,Sass语法属于缩排语法,比css比多出好些功能(如变量 ...
- HTML5的常用新特性你必须知道
HTML5的常用新特性你必须知道 1 新的 声明 HTML 有多个不同的版本,只有完全明白页面中使用的确切 HTML 版本,浏览器才能完全正确地显示出 HTML 页面.这就是 的用处. 不是 HTML ...
- 10大H5前端框架(转)
10大H5前端框架 作为一名做为在前端死缠烂打6年并且懒到不行的攻城士,这几年我还是阅过很多同门从知名到很知名的各种前端框架,本来想拿15-20个框架来分享一下,但在跟几个前辈讨教写文章的技巧时果断被 ...
- Sass预定义一些常用的样式
一.编写sass文件时, 目录不能有中文, 如: E:\\CPC手机, 会报错exception while processing events: incompatible character enc ...
- Less、Sass/Scss
一.Less.Sass/Scss是什么? 1.Less: 是一种动态样式语言. 对CSS赋予了动态语言的特性,如变量.继承.运算.函数. Less 既可以在客户端上运行 (支持IE 6+, Webki ...
- sass/scss 和 less对比
一. Sass/Scss.Less是什么? Sass (Syntactically Awesome Stylesheets)是一种动态样式语言,Sass语法属于缩排语法,比css比多出好些功能(如变量 ...
- Sass/Scss 基础篇
Sass/Scss 基础篇 总结Sass学习到的内容 应用Sass/Scss前,环境配置 首先下载Ruby (http://rubyinstaller.org/downloads) 通过命令下载sas ...
- 【Sass/SCSS】预加载器中的“轩辕剑”
[Sass/SCSS]预加载器中的"轩辕剑" 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 随着前端 ...
随机推荐
- 实现stack 加上·getMin功能 时间复杂度为O(n)
package com.hzins.suanfa; import java.util.Stack; /** * 实现stack 加上·getMin功能 时间复杂度为O(n) * @author Adm ...
- docker 基本概念
image 操作系统 应用 registeries image 的远程仓库 containers 类似一个目录,一个容器包含了 应用运行所需要的一切东西, 容器之间互相独立 image包换一系列的层, ...
- 调试 ASP 程序脚本
调试 ASP 脚本 无论您的计划多么精密.经验多么丰富,脚本错误 (bug) 可能在最初就使您的 ASP 服务器端的脚本无法正确运行.也就是说调试,即查找和纠正脚本错误,对开发一个成功的和强健的 AS ...
- BZOJ2428:[HAOI2006]均分数据
我对模拟退火的理解:https://www.cnblogs.com/AKMer/p/9580982.html 题目传送门:https://www.lydsy.com/JudgeOnline/probl ...
- bzoj 2597 剪刀石头布 —— 拆边费用流
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2597 不合法的三个人之间的关系就是一个人赢了两次: 记 \( deg[i] \) 表示第 \ ...
- Ubuntu下安装软件
在ubuntu当中,安装应用程序有三种方法,分别是:apt-get,dpkg安装deb和make install安装源码包三种. apt-get方法 使用apt-get install来安装应用程序算 ...
- Python:列表反序和解析
1)列表反序 A.list.reverse():将列表反序: l = [1, 2, 3, 4, 5] print(l.reverse()) -->[5, 4, 3, 2, 1] B.l.[::- ...
- Guice 学习
Guice: 是一个轻量级的DI框架. 不需要繁琐的配置,只需要定义一个Module来表述接口和实现类,以及父类和子类之间的关联关系的绑定,如下是一个例子. http://blog.csdn.net/ ...
- JS---script的位置
都可以,但各有千秋.放在head中:统一管理,方便维护:但浏览器会首先加载js文件,如果js文件过大,会造成页面在加载js的时候“无反应”时间过长,影响用户体验.放在body中(或放在body后):浏 ...
- GIF助手激活教程(购买+激活)图文版
GIF助手首页==>设置(右上角) ==>输入激活码会弹出购买或者激活的对话框.(如果不明白操作,可以点击如何购买激活码先查看购买帮助指南再进行购买) 点击复制设备码并购买. 此时会进入到 ...