sass基础用法
嵌套:
1.选择器嵌套;
2.属性嵌套;
.box {
border-top: 1px solid red;
border-bottom: 1px solid green;
}
.box {
border: {
top: 1px solid red;
bottom: 1px solid green;
}
}
3.伪类嵌套;
.box:before {
content: "伪元素嵌套";
}
.box{
&:before {
content:"伪元素嵌套";
}
}
4.跳出嵌套;@at-root
跳出嵌套
body{
@at-root .container{
width: 20px;
}
}
混合宏:
在 Sass 中通过 @mixin 关键词声明了一个混合宏,那么在实际调用中,其匹配了一个关键词“@include”来调用声明好的混合宏
@mixin border-rad($rad1...){
-webkit-border-radius:$rad1;
-moz-border-radius:$rad1;
-o-border-radius:$rad1;
-ms-border-radius:$rad1;
border-radius:$rad1;
}
.box4{
@include border-rad(36px 30px 10px red,2px 5px 6px red);
}
继承:在 Sass 中也具有继承一说,继承类中的样式代码块。在 Sass 中是通过关键词 “@extend”来继承已存在的类样式块,从而实现代码的继承。
.btn {
border: 1px solid #ccc;
padding: 6px 10px;
font-size: 14px;
} .btn-primary {
background-color: #f36;
color: #fff;
@extend .btn;
} .btn-second {
background-color: orange;
color: #fff;
@extend .btn;
} 效果:
.btn, .btn-primary, .btn-second {
border: 1px solid #ccc;
padding: 6px 10px;
font-size: 14px;
}
占位符:Sass 中的占位符 %placeholder 功能是一个很强大,很实用的一个功能。他可以取代以前 CSS 中的基类造成的代码冗余的情形。因为 %placeholder 声明的代码,如果不被 @extend 调用的话,不会产生任何代码。
%mt5 {
margin-top: 5px;
}
%pt5{
padding-top: 5px;
} .btn {
@extend %mt5;
@extend %pt5;
} .block {
@extend %mt5; span {
@extend %pt5;
}
} 效果:
.btn, .block {
margin-top: 5px;
} .btn, .block span {
padding-top: 5px;
}
插值:
$properties: (margin, padding);
@mixin set-value($side, $value) {
@each $prop in $properties {
#{$prop}-#{$side}: $value;
}
}
.login-box {
@include set-value(top, 14px);
} //它可以让变量和属性工作的很完美,上面的代码编译成 CSS: .login-box {
margin-top: 14px;
padding-top: 14px;
} @mixin asd($wid,$hei,$classname,$bg,$name){
#{$name}:$wid;
height:$hei;
.#{$classname}{
#{$bg}:red;
} }
运算:
.box {
width: 20px + 30px;
} 效果:
.box {
width: 50px;
}
.box {
width: 20px - 30px;
} 效果:
.box {
width: -10px;
}
.box {
width: 20px * 30px;
} 效果:
.box {
width: 600px;
}
注意运算符之间要用空格隔开;
函数:
颜色函数:
body{
color: rgb(255,0,200);
} body{
$color: rgb(255,0,200);
color: $color;
background-color: rgba($color,0.5);
} p{
color: darken($color, 2);
background-color: lighten($color,0.5);
}
str-length(),str-index();
z-index:str-length("aaaaa");得到的结果是,Z-index:5;
z-index:str-index("abcdfedd",c);得到的结果是,Z-index:3;
自定义函数:
@function double($width){
@retrun $width * 2;
}
控制命令:
//@if
@mixin blockOrHidden($boolean:true) {
@if $boolean {
@debug "$boolean is #{$boolean}";
display: block;
}
@else {
@debug "$boolean is #{$boolean}";
display: none;
}
} .block {
@include blockOrHidden;
} .hidden{
@include blockOrHidden(false);
} 编译出来的CSS: .block {
display: block;
} .hidden {
display: none;
} @debug报错时调试
//@for
@for $i from <start> through <end>
@for $i from <start> to <end>
$i 表示变量
start 表示起始值
end 表示结束值 关键字 through 表示包括 end 这个数,而 to 则不包括 end 这个数。 @for $i from 1 through 3 {
.item-#{$i} { width: 2em * $i; }
}
编译出来的 CSS: .item-1 {
width: 2em;
} .item-2 {
width: 4em;
} .item-3 {
width: 6em;
} //@while
$types: 4;
$type-width: 20px; @while $types > 0 {
.while-#{$types} {
width: $type-width + $types;
}
$types: $types - 1;
} 编译出来的 CSS .while-4 {
width: 24px;
} .while-3 {
width: 23px;
} .while-2 {
width: 22px;
} .while-1 {
width: 21px;
}
//@each
$k: 1;
@each $c in blue, yellow, gray{
.div#{$k}{
color: $c;
}
$k: $k + 1;
} @each $key,$value in (a: blue, b: yellow, c: gray){
.class#{$key}{
color: $value;
}
}
sass基础用法的更多相关文章
- sass的用法小结(四)进阶篇
Sass 的数据类型 Sass 既然有了类似编程语言的功能,自然也就有了简单的数据类型.这里简单的介绍一些 Sass 中的数据类型,因为在后面的讨论中要用到有关的内容. Sass 中主要有六种数据类型 ...
- PropertyGrid控件由浅入深(二):基础用法
目录 PropertyGrid控件由浅入深(一):文章大纲 PropertyGrid控件由浅入深(二):基础用法 控件的外观构成 控件的外观构成如下图所示: PropertyGrid控件包含以下几个要 ...
- logstash安装与基础用法
若是搭建elk,建议先安装好elasticsearch 来自官网,版本为2.3 wget -c https://download.elastic.co/logstash/logstash/packag ...
- elasticsearch安装与基础用法
来自官网,版本为2.3 注意elasticsearch依赖jdk,2.3依赖jdk7 下载rpm包并安装 wget -c https://download.elastic.co/elasticsear ...
- BigDecimal最基础用法
BigDecimal最基础用法 用字符串生成的BigDecimal是不会丢精度的. 简单除法. public class DemoBigDecimal { public static void mai ...
- [转]前端利器:SASS基础与Compass入门
[转]前端利器:SASS基础与Compass入门 SASS是Syntactically Awesome Stylesheete Sass的缩写,它是css的一个开发工具,提供了很多便利和简单的语法,让 ...
- Vue组件基础用法
前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...
- Smarty基础用法
一.Smarty基础用法: 1.基础用法如下 include './smarty/Smarty.class.php';//引入smarty类 $smarty = new Smarty();//实例化s ...
- 前端自动化测试神器-Katalon的基础用法
前言 最近由于在工作中需要通过Web端的功能进行一次大批量的操作,数据量大概在5000左右,如果手动处理, 完成一条数据的操作用时在20秒左右的话,大概需要4-5个人/天的工作量(假设一天8小时的工作 ...
随机推荐
- 无中间变量交换swap(a,b)
#include <stdio.h> /* 加减法 整型.浮点型(损失精度) */ void swap1(int *a,int *b) { *a=*a+*b; *b=*a-*b; *a=* ...
- Sublime text 3如何编辑less并转(编译)成css文件
今天开始学习使用less这个强大方便的前端工具,本来是考虑用koala(专门编辑less的软件)来使用less的,但是发现sublime编辑器也可以实现对less的编译及高亮显示代码,这样既能少用一个 ...
- zabbix自定义key
zabbix自定义key 1.修改客户端配置文件 #vi /opt/zabbix/etc/zabbix_agentd.conf Include=/opt/zabbix/etc/zabbix_agent ...
- dell md3200i mdss (企业管理) 安装的那点事儿(2)
yum install iscsi-initiator-utils.x86_64yum install iscsi-initiator-utils-devel.x86_64yum install de ...
- 原生js封装ajax:传json,str,excel文件上传表单提交
由于项目中需要在提交ajax前设置header信息,jquery的ajax实现不了,我们自己封装几个常用的ajax方法. jQuery的ajax普通封装 var ajaxFn = function(u ...
- try catch里面try catch嵌套
try catch里能否内嵌try catch?答案是肯定的.但是等内层try catch出异常之后是个什么执行顺序呢?看下面代码 static void Main(string[] args) { ...
- java 使用正则表达式过滤HTML中标签
/** * 去掉文本中的html标签 * * @param inputString * @return */ public static String html2Text(String inputSt ...
- JSTL 操作符
el表达式的取值默认顺序: pageScope requestScope sessionScope applicationScope 结构,采用.导航,也称为存取器 ${us ...
- CentOS系统中基于Apache+php+mysql的许愿墙网站的搭建
1.首先,我们需要两台虚拟机(CentOS7,Linux文本). 2.给两台虚拟机配置网络环境分别为桥接模式 CentOS7 ip为192.168.100.139.24,linux文本ip为192.1 ...
- Spring学习(三)
1,Spring的事务管理机制 Spring事务管理高层抽象主要包括3个接口,Spring的事务主要是由他们共同完成的: l PlatformTransactionManager:事务管理器-主要用于 ...