制作长投影,关于sass的安装及使用教程
分类:前端技术

行使 CSS 3 制作长投影

2017/03/07 · CSS · 1 评论 · Shadow

原作出处: Jack Pu   

在flat design(扁平化的兼顾)中,Long Shadow (长投影)被望着屡试屡验的设计本领。举个例子下边那张,特别优质的长投影设计:

图片 1

壁画师采取长投影平时是给图片带来戏剧效率, 在天体中,长投影爆发在黄昏的时候,太阳相近地平线时,水平地面上的实体俯瞰就能够有长投影的效力。在分界面设计中大家日常接纳了仿照45度角的效果,模拟阳光从西南角上射来,进而与兼顾的宗旨产生刚毅的对照效果。使用photoshop制作长投影有很两种办法,你能够阅读常用的八种办法创设长投影效果,自身平时最赏识用的也是第两种,通过图层复制和移动来到达如此的功力,比方自身在behance上传的那张图片,

图片 2

大概原理就是你复制三个当下图层,选中图层样式,填充深褐,然后将其移到原图层上面。然后利用鼠标恐怕滤镜都得以落成活动,友移三个单位和下移叁个单位。图片 3

下一场,我们再复制那一个图层,再平移一回。然后归拢那四个黑影图层图片 4

然后大家再另行动作,即把那一个图层复制一遍,向下移和向右移动2个单位。再举办统风姿罗曼蒂克。依次类推复制,移动偶好数倍单位,归总,然后再重新。

自然你用滤镜->别的->位移会尤其方便

图片 5

差不离正是这么的效率,然后最终设置下发光度就好。

图片 6

地点说的是规划,前端怎么样通过css代码来得以达成那样的功能?大家第不时间想到就是css3已经支撑的text-shadow

第大器晚成大家给背景增多生龙活虎种相比较优异的水彩吗,自个儿精通安利flatcolors本条网站,里面有好多配色方案,随取随用。 大家给body 设置一下背景观。本人相比较欣赏鲜黄。接下来我们再去google font里头筛选自个儿喜欢的字体,假使您感觉暗中认可的书体能够选用也不妨.自身采用了Passion One

接下来在css代码中引进就好。

@import url(‘‘);

当时我们在大家的body里面随意敲多少个假名吧,譬喻long shadow

XHTML

<body> <h1>Long Shadow</h1> </body>

1
2
3
<body>  
  <h1>Long Shadow</h1>
</body>

然后我们定义一些h1的核心样式;

CSS

h1{ text-align:center; font-size:6rem; padding-top:2rem; }

1
2
3
4
5
h1{  
  text-align:center;
  font-size:6rem;
  padding-top:2rem;
}

接下去正是要落实最宗旨的正是写text-shadow的代码了

text-shadow的值可以有x,y轴的移动,加模糊半径和颜料。

CSS

/* offset-x | offset-y | blur-radius | color */ text-shadow: 1px 1px 2px black;

1
2
/* offset-x | offset-y | blur-radius | color */
text-shadow: 1px 1px 2px black;

笔者们借使每每的移位,然后使其颜色趋近与背景象不仅可以够了。

相当于那样子的代码

CSS

text-shadow: 1px 1px rgba(18, 67, 100, 0.5) , 2px 2px rgba(20, 72, 107, 0.51) , 3px 3px rgba(22, 76, 113, 0.52) , 4px 4px rgba(23, 81, 119, 0.53) , 5px 5px rgba(25, 85, 125, 0.54) ...

1
text-shadow: 1px 1px rgba(18, 67, 100, 0.5) , 2px 2px rgba(20, 72, 107, 0.51) , 3px 3px rgba(22, 76, 113, 0.52) , 4px 4px rgba(23, 81, 119, 0.53) , 5px 5px rgba(25, 85, 125, 0.54) ...

不过这么写下去料定是不现实的,本身供给再三计算步长和升高。幸而大家有scss和less那样的预管理框架。大家能够十分有利的成就颜色的折算和拉长。

scss代码达成仿效

Sass

@function longshadow($color_a,$color_b,$stepnum, $opacity: 1){ $gradient_steps: null; <a href="; $i from 1 through $stepnum { $weight: ( ( $i - 1 ) / $stepnum ) * 100; $colour_mix: mix($color_b, rgba($color_a, $opacity), $weight); $seperator: null; @if($i != $stepnum){ $seperator: #{','}; } $gradient_steps: append( #{$gradient_steps}, #{$i}px #{$i}px $colour_mix $seperator ); } @return $gradient_steps; }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@function longshadow($color_a,$color_b,$stepnum, $opacity: 1){
 
  $gradient_steps: null;
 
  <a href="http://www.jobbole.com/members/lowkey2046">@for</a> $i from 1 through $stepnum {
 
    $weight: ( ( $i - 1 ) / $stepnum ) * 100;
 
    $colour_mix: mix($color_b, rgba($color_a, $opacity), $weight);
 
    $seperator: null;
 
    @if($i != $stepnum){
      $seperator: #{','};
    }
 
    $gradient_steps: append( #{$gradient_steps}, #{$i}px #{$i}px $colour_mix $seperator );
 
  }
 
  @return $gradient_steps;
 
}

函数的实施效力正是临近于自己穿入几个颜色a和七个颜色b,当中颜色a正是影子此前之处的颜色,颜色b正是背景的水彩,步长也正是看似你指望你的影子有多少长度,最后三个正是反射率。然后正是估测计算了,大家没次都活动叁个单位,然后颜色实行百分比的依次减少,最终组织好样式就足以了。

以那时候候大家只要求在h1的体裁中采用那几个函数就好

Sass

@include text-shadow(longshadow(darken($bg,30%),$bg,50, 0.5));

1
@include text-shadow(longshadow(darken($bg,30%),$bg,50, 0.5));

内部$bg:正是大家背景的颜色咯: #3498db。

运作效果如下:

See the Pen text long shadow by Jack Pu (@Jack_Pu) on CodePen.

CSS3 文本3D效果,css3文本3d

代码如下:

<!DOCTYPE html>
<html>
<head>
<style>
h1
{
color: #3D3D3D;
font-size: 200px;
text-shadow: 0px -1px 0px #858585, 0px 1px 10px rgba(0, 0, 0, 0.6), 0px 6px 1px rgba(0, 0, 0, 0.1), 0px 0px 5px rgba(0, 0, 0, 0.2), 0px 1px 3px rgba(0, 0, 0, 0.3), 0px 3px 5px rgba(0, 0, 0, 0.2), 0px 7px 10px rgba(0, 0, 0, 0.25), 0px 15px 10px rgba(0, 0, 0, 0.2), 0px 25px 15px rgba(0, 0, 0, 0.15);
}
</style>
</head>
<body>

<h1>文本3D效果!</h1>

</body>
</html>

效果如下图:

安装ruby

Sass中文网()
一、Sass基础
  1、Sass和Scss有如何分别?

扩充阅读

2 赞 2 收藏 1 评论

图片 7

怎利用CSS3营造3D效果文字具体完毕样式

复制代码代码如下:.example-class{text-shadow: [X offset] [Y offset] [Blur size] [Colour];}译者注:X表示x轴上的运动,可为负值;Y表示y轴上的活动,可为负值;Blur代表投影的拉长率,不可能为负值;Color为影子的颜色。堆集多层CSS投影即使大家并未须求堆集多层阴影,但通过聚成堆多层投影会有越来越好的3D效果初始创办3D文字你也许会选取比文字更深的水彩来作为投影的水彩,所以那些事例中笔者就用暗黑的文字,用深一点的灰褐作为投影颜色,这几个事例中本人将H2的文字渲染3D效果,css代码如下:复制代码代码如下:h2{text-shadow:1px 1px 0 #CCC,2px 2px 0 #CCC, /* end of 2 level deep grey shadow */3px 3px 0 #444,4px 4px 0 #444,5px 5px 0 #444,6px 6px 0 #444; /* end of 4 level deep dark shadow */}效果如下:好了,到此处你已经创办了核心的3D文字,不过,让大家尤其来得以完结鼠标滑过的文字放大作用,并用css的transision属性达成圆滑的淡入淡出效果。首先用transform属性完毕滑过字体放大复制代码代码如下:h2:hover{/* CSS3 Transform Effect */-webkit-transform: scale(1.2); /* Safari & Chrome */-moz-transform: scale(1.2); /* Firefox */-o-transform: scale(1.2); /* Opera */}效果如下:然后使用transition属性实现淡入淡出效果复制代码代码如下:h2{/* CSS3 Transition Effect */-webkit-transition: all 0.12s ease-out; /* Safari & Chrome */-moz-transition: all 0.12s ease-out; /* Firefox */-o-transition: all 0.12s ease-out; /* Opera */}到此,我们就用CSS3贯彻了3D效果的文字,并且在鼠标滑过是让字体放大,且有淡入淡出的效果与利益,那整个是用纯CSS完成的啊。  

http://rubyinstaller.org/downloads/

    1)文件扩张名不相同----.sass和.scss

怎利用CSS3制作3D效果文字具体贯彻样式解答

复制代码代码如下:.example-class{text-shadow: [X offset] [Y offset] [Blur size] [Colour];}译者注:X表示x轴上的移动,可为负值;Y表示y轴上的运动,可为负值;Blur代表投影的上涨的幅度,无法为负值;Color为影子的水彩。
聚积多层CSS投影
虽说大家不供给堆集多层阴影,但透过堆集多层投影会有越来越好的3D效果
开班创立3D文字
您或然会筛选比文字更加深的颜色来作为投影的颜色,所以那个例子中本人就用玫瑰铅灰的文字,用深一点的鳝鱼青作为投影颜色,这一个例子中自个儿将H2的文字渲染3D效果,css代码如下:
复制代码代码如下:h2{text-shadow:
1px 1px 0 #CCC,
2px 2px 0 #CCC, /* end of 2 level deep grey shadow */
3px 3px 0 #444,
4px 4px 0 #444,
5px 5px 0 #444,
6px 6px 0 #444; /* end of 4 level deep dark shadow */}效果如下:好了,到此地你早已创办了基本的3D文字,不过,让大家更为来达成鼠标滑过的文字放大功效,并用css的transision属性达成油滑的淡入淡出效果。
首先用transform属性完成滑过字体放大
复制代码代码如下:h2:hover{/* CSS3 Transform Effect */
-webkit-transform: scale(1.2); /* Safari & Chrome */
-moz-transform: scale(1.2); /* Firefox */
-o-transform: scale(1.2); /* Opera */}效果如下:然后利用transition属性完结淡入淡出效果
复制代码代码如下:h2{/* CSS3 Transition Effect */
-webkit-transition: all 0.12s ease-out; /* Safari & Chrome */
-moz-transition: all 0.12s ease-out; /* Firefox */
-o-transition: all 0.12s ease-out; /* Opera */}到此,大家就用CSS3兑现了3D效果的文字,何况在鼠标滑过是让字体放大,且有淡入淡出的功效,这一切是用纯CSS达成的哦。  

文本3D效果,css3文本3d 代码如下: ! DOCTYPE html html head style h1 { color : #3D3D3D ; font-size : 200px ; text-shadow : 0px -1px 0px #858585, 0px 1px 10px rgba(0...

Taobao镜像

    2)语法书写格局各异----Sass以严俊的缩进式语准绳则来书写,不带大括号和支行

https://gems.ruby-china.org/

             ----Scss的语法书写和css的语法书写情势非常周围
    例:

转移镜像:( 如报错,请把

 1 $font-stack: Helvetica, sans-serif //定义变量
 2 $primary-color: #333 //定义变量
 3 
 4 //Sass
 5 body
 6 font: 100% $font-stack
 7 color: $primary-color //sass
 8 
 9 //Scss
10 body{
11   font: 100% $font-stack;
12   color: $primary-color;
13 }    

$gem update --system # 这里请翻墙一下$gem -v2.6.3

  2、Sass安装
    1)到 Ruby 的官网()下载对应需求的 Ruby 版本。
    2)Ruby 安装到位后,在初始菜单中找到新安装的 Ruby,并运行 Ruby 的 Command 调节面板。

$gem sources --add  --remove 

    3)张开计算机的命令终端,输入上边包车型客车指令:gem install sass

$gem sources -l

    4)检查sass是或不是安装成功:sass -v
  3、Sass更新----gem update sass
  4、Sass卸载----gem uninstall sass

  5、Sass编译:

# 确定保证唯有 gems.ruby-china.org

    1)命令编译{

步骤:

      单文件编写翻译:
        sass <要编写翻译的Sass文件路线>/style.scss:<要出口CSS文件路线>/style.css

step1

      多文本编写翻译:
        sass sass/:css/

新建.scss文件,依据sass语法编写

      watch功能:
      sass --watch <要编写翻译的Sass文件路线>/style.scss:<要出口CSS文件路线>/style.css
    }

step2

    2)GUI编写翻译----Koala等编写翻译工具

打开ruby 命令

    3)即便选拔sublime,安装sass Build 插件后,使用便捷键 Ctrl  B 就能够编写翻译,编写翻译后的css文件贮存在当前目录 

跻身各和姑件夹

    4)sass不以为奇的编写翻译错误:

如在F盘,可径直输入F: 回车

      字符编译----sass不支持GBK编码格式,创立时就应安装为utf-8

如f://study/exercise/test.scss

      文件路线----不可能有中文字符
  6、Sass不雷同式风格的出口方法
    1)嵌套输出情势nested 

则输入 cd f:/study/exercise 回车

      编写翻译时带上参数" --style nested";例:sass --watch test.scss:test.css --style nested

SASS文件正是管见所及的公文文件,里面能够一贯动用CSS语法。文件后缀名是.scss,意思为Sassy CSS。

      编写翻译结果:

上面包车型客车授命,能够在显示屏上展现.scss文件转发的css代码。(假如文件名称为test。)

1 nav ul {
2     margin: 0;
3     padding: 0;
4     list-style: none; }

sass test.scss

    2)张开输出方式expanded 

设若要将显得结果保存成文件,前边再跟八个.css文件名。

      在编译的时候带上参数“ --style expanded”;例:sass --watch test.scss:test.css --style expanded
      那么些输出的 CSS 样式风格和 nested 相通,只是大括号在另起一行,同样上边的代码,编写翻译出来:

sass test.scss test.css

1 nav ul {
2     margin: 0;
3     padding: 0;
4     list-style: none;
5 }

SASS提供多个编写翻译风格的选项:

    3)紧密输出形式compact 

* nested:嵌套缩进的css代码,它是暗中同意值。

      在编写翻译的时候带上参数“ --style compact”;例:sass --watch test.scss:test.css --style compact

* expanded:未有缩进的、扩充的css代码。

      编写翻译后的代码如下:

* compact:简洁格式的css代码。

1 nav ul { margin: 0; padding: 0; list-style: none; }
2 nav li { display: inline-block; }

* compressed:压缩后的css代码。

    4)压缩输出方式compressed 

生育条件个中,一般采纳最终八个增选。

      在编写翻译的时候带上参数“ --style compressed”;例:sass --watch test.scss:test.css --style compressed

sass --style compressed test.sass test.css

      压缩输出方式会去掉标准的 Sass 和 CSS 注释及空格。也正是压缩好的 CSS 代码样式风格:

你也足以让SASS监听某个文件或目录,生龙活虎旦源文件有改动,就自动生成编写翻译后的版本。

1 nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}

// watch a file

  7、Sass调试

sass --watch input.scss:output.css

  基础:css浏览器调试

// watch a directory

    1)F12开垦Chrome浏览器调节面板

sass --watch app/sass:public/stylesheets

    2)切换至Sources选项

三、基本用法

    3)左侧Sources空白处右键单击,接收 Add folder to workspace增添本地目录到工作区

3.1 变量

    4)选取体系目录,单击确认

SASS允许使用变量,全部变量以$在此以前。

    5)在新添长的本麻芋果件上单击鼠标右键,选用Map to network resources映射到服务器文件
       或然单击服务器上的文书,选拔Map to file system resources映射到地面文件

$blue : #1875e7;

    6)创立映射后,在浏览器中调护医治改良.css/.html等文件保留后就可以修正当羊眼半夏件;Elements面板调节和测量试验会自动保存到地头
  
  8、Sass注明变量

div {

    $width:300px;

color : $blue;

    $----变量评释符

}

    width----变量名

假如变量需求镶嵌在字符串之中,就非得须求写在#{}之中。

    300px----变量值

$side : left;

  假使值前边加上!default则代表私下认可值 含义是:假使这几个变量被声称赋值了,那就用它注解的值,不然就用这些暗中同意值。
  9、Sass变量的调用
    调用 变量注脚符 变量名
  10、Sass局地变量和全局变量

.rounded {

    在选取器、函数、混合宏...的外面定义的变量为全局变量

border-#{$side}-radius: 5px;

    局地变量在其功用域内会覆盖重名的全局变量

}

    !global----将一些变量转变为全局变量
  11、Sass嵌套

3.2 总计作用

    1)选取器嵌套

SASS允许在代码中应用算式:

    将一套css样式嵌套进另黄金年代套样式中,内层样式将它外层的选拔器作为父接受器
    例:

body {

1 main{
2     color:red;
3     .greenText{
4         color:green;
5     }
6 }        

margin: (14px/2);

    ---->编写翻译结果:

top: 50px 100px;

1 main {
2     color: red; }
3 main .greenText {
4     color: green; }

right: $var * 10%;

    父接纳器 & :代表嵌套准绳外层的父选拔器
    例:

}

1 main{
2     color:red;
3     .greenText{
4         color:green;
5       & p{
6           color:yellow;
7         }
8     }
9 }    

3.3 嵌套

    ---->编译结果:

SASS允许接纳器嵌套。举个例子,下边包车型地铁CSS代码:

1 main {
2     color: red; }
3 main .greenText {
4     color: green; }
5 main .greenText p{
6     color:yellow; }

div h1 {

    2)属性嵌套

color : red;

    css中有局地性质前缀形似,只是后缀不相同等,比如border-top和border-left等,

}

    这几个属性都服从平等的命名空间(border),可将品质嵌套在同风姿洒脱的命名空间中。
    例:

能够写成:

1 .box{
2     border:{
3         top:1px solid red;
4         left:1px solid green;
5     }
6 }    

div {

    ---->编写翻译结果:

h1 {

1 .box {
2     border-top:1px solid red;
3     border-left:1px solid green; }

color:red;

    命名空间也能够包罗本身的属性值。
    例:

}

1 .text{
2     font:20px/24px {
3         style:normal;
4         weight:bold;
5     }
6 }

}

    ---->编写翻译结果:

品质也足以嵌套,比方border-color属性,能够写成:

1 .text{
2     font:20px/24px;
3     font-style:normal;
4     font-weight:bold; }

p {

    3)伪类嵌套

border: {

    其本质依然接收器嵌套,依据父选用器 & ($:after{})
  12、Sass混合宏
    1)表明混合宏 @mixin 混合宏的称谓{复用的体制代码}

color: red;

      Ⅰ不带参数混合宏
      例:

}

1 @mixin border-radius{
2     -webkit-border-radius:5px;
3     border-radius:5px;
4 }

}

      Ⅱ带参数混合宏

潜心,border前边总得抬高冒号。

      例:

在嵌套的代码块内,能够利用&引用父成分。例如a:hover伪类,能够写成:

1 @mixin border-radius($radius:5px){
2 -webkit-border-radius:$radius;
3 border-radius:$radius;
4 }

a {

      Ⅲ复杂的混合宏(逻辑运算)

&:hover { color: #ffb3ff; }

      例:

}

1 //$shadow...表示可以接收多个参数
2 @mixin box-shadow($shadow...) {
3     @if length($shadow) >= 1 {
4         @include prefixer(box-shadow, $shadow);
5     } @else{
6         $shadow:0 0 4px rgba(0,0,0,.3);
7         @include prefixer(box-shadow, $shadow);
8     }
9 }

3.4 注释

    2)调用混合宏 @include 混合宏名称;
    例:

SASS共有三种注释风格。

1 .box{
2     @include border-radius;
3 }

标准的CSS注释 /* comment */ ,会保留到编写翻译后的文件。

    ---->编写翻译结果:

单行注释 // comment,只保留在SASS源文件中,编译后被略去。

1 .box{
2     -webkit-border-radius:5px;
3     border-radius:5px;}

在/*背后加一个惊讶号,表示那是"主要注释"。即便是减掉方式编写翻译,也会保留那行注释,平日能够用于证明版权音信。

    3)混合宏的参数

/*!

      Ⅰ传二个不带值的参数(调用时传参)

根本注释!

      Ⅱ传叁个带值的参数(调用且不传参时该值作为参数的暗许值)

*/

      Ⅲ传八个参数
  13、Sass扩展/继承 @extend

四、代码的任用

  承接已存在的类样式块,进而实现代码的接续,减弱混合宏的冗余难题

4.1 继承

  @extend能够承袭类样式块中有着样式代码,并且编写翻译出来的css会将选拔器合并到手拉手,产生组合选取器。
  例:

SASS允许三个接收器,承接另七个选择器。比如,现存class1:

 1 .btn {
 2     border: 1px solid #ccc;
 3     padding: 6px 10px;
 4     font-size: 14px;
 5 }
 6 .btn-primary {
 7     background-color: #f36;
 8     color: #fff;
 9     @extend .btn;
10 }

.class1 {

  ---->编写翻译结果:

border: 1px solid #ddd;

1 .btn, .btn-primary {
2     border: 1px solid #ccc;
3     padding: 6px 10px;
4     font-size: 14px; }
5 
6 .btn-primary {
7     background-color: #f36;
8     color: #fff; }

}

  14、Sass占位符 %placeholder

class2要承接class1,将要动用@extend命令:

  代替早前css中的基类形成的代码冗余之处。

.class2 {

  %placeholder表明的代码,尽管不被@extend调用的话,不会发出别的代码。
  例:

@extend .class1;

 1 %mt{
 2     margin:{
 3         top: 5px;
 4         left:10px
 5     }
 6 }
 7 %pt{
 8     padding:{
 9         top:10px;
10         left:5px;
11         bottom:5px;
12         right:10px;
13     }
14 }
15 .btn,.btn1{
16     @extend %mt;
17     @extend %pt;
18 }    

font-size:120%;

  ---->编写翻译结果:

}

1 .btn, .btn1 {
2     margin-top: 5px;
3     margin-left: 10px; }
4 
5 .btn, .btn1 {
6     padding-top: 10px;
7     padding-left: 5px;
8     padding-bottom: 5px;
9     padding-right: 10px; }

4.2 Mixin

  15、Sass插值 #{}

Mixin有一点像C语言的宏(macro),是能够引用的代码块。

  假诺变量须求嵌套在字符串中,就必得写在#{}中
  例:

运用@mixin命令,定义二个代码块。

1 $side:left;
2 .box{
3     border-#{$side}-radius:5px;
4 }

@mixin left {

  ---->编写翻译结果:

float: left;

1 .box{
2     border-left-radius:5px; }

margin-left: 10px;

  16、Sass注释

}

    1) /**/ 注释内容会显得在编写翻译出来的css中
    2) // 注释内容会不出示在编译出来的css中
  17、Sass数据类型

应用@include命令,调用这几个mixin。

    1)数字:如1、2、3、10px;

div {

    2)字符串:如-有引号字符串"String"、'String'或无引号字符串String;

@include left;

    3)颜色:如red、#0091db、rgba(0,0,0,.3);

}

    4)布尔型:true、false;

mixin的强硬之处,在于能够钦点参数和缺省值。

    5)空值:null;

@mixin left($value: 10px) {

    6)值列表:用空格或逗号分开,如1.5em 1em 0 2em、Helvetica, Arial, sans-serif
  18、Sass运算

float: left;

二、Sass的支配命令
  1、 @if

margin-right: $value;

  @if指令是叁个SassScript,它能够根据规范来管理体制块。还足以协作@else if和@else一齐行使。
  例:

}

 1 @mixin blockOrNone($boolean:true){
 2     @if($boolean){
 3         display:block;
 4     }@else{
 5         displaynone;
 6     }
 7 }
 8 .box-block{
 9     @include blockOrNone;
10 }
11 .box-none{
12     @include blockOrNone(false);
13 }

动用的时候,依据要求投入参数:

  ---->编写翻译结果:

div {

1 .box-block{
2     display:block; }
3 .box-none{
4     display:none; }

@include left(20px);

  2、 @for循环

}

  Sass的@for循环中有三种格局:
    @for $i from <start> through <end>
    @for $i from <start> to <end>

上边是叁个mixin的实例,用来扭转浏览器前缀。

      $i----表示变量

@mixin rounded($vert, $horz, $radius: 10px) {

      start----表示开头值

border-#{$vert}-#{$horz}-radius: $radius;

      end----表示停止值
      through表示 包括 end这个数
      to表示 不包括 end这个数
  例:@for $i from <start> through <end>

-moz-border-radius-#{$vert}#{$horz}: $radius;

1 @for $i from 1 through 3{
2     .item-#{$i}{width:2em * $i;}
3 }

-webkit-border-#{$vert}-#{$horz}-radius: $radius;

  ---->编写翻译结果:

}

1 .item-1{
2     width:2em; }
3 .item-2{
4     width:4em; }
5 .item-3{
6     width:6em; }

应用的时候,能够像下边那样调用:

  例:@for $i from <start> to <end>

#navbar li { @include rounded(top, left); }

1 @for $i from 1 to 3{
2     .item-#{$i}{width:2em * $i;}
3 }

#footer { @include rounded(top, left, 5px); }

  --->编写翻译结果:

4.3 颜色函数

1 .item-1{
2     width:2em; }
3 .item-2{
4     width:4em; }

SASS提供了后生可畏部分放置的颜料函数,以便生成体系颜色。

  3、@while循环

lighten(#cc3, 10%) // #d6d65c

  @while指令也急需SassScript表明式(像任何指令相通),并且会调换区别的体裁块,直到说明式值为false时停下循环。
  例:

darken(#cc3, 10%) // #a3a329

1 $types:4;
2 $type-width:20px;
3 
4 @while $types > 0 {
5     .while-#{types}{
6         width:$type-width   $types ;
7     }
8     $types:$types -1 ;
9 }

grayscale(#cc3) // #808080

  ---->编写翻译结果:

complement(#cc3) // #33c

1 .while-4{
2     width:24px; }
3 .while-3{
4     width:23px; }
5 .while-2{
6     width:22px; }
7 .while-1{
8     width:21px; }

4.4 插入文件

  4、@each循环

@import命令,用来插入外界文件。

  @each循环正是去遍历多个列表,然后从列表中删除对应的值。
  @each $var in <list>

@import "path/filename.scss";

    $var----变量名

万意气风发插入的是.css文件,则一点差别也没有于css的import命令。

    <list>----SassScript表达式
  例:

@import "foo.css";

 1 $list:adam john wynn mason kuroir //定义列表
 2 
 3 @mixin author-iamges{
 4     @each $author in $list{
 5         .photo-#{$author}{
 6             background:url("vatars/#{$author}.png") no-repeat;
 7         }
 8     }
 9 }
10 .box{
11     @include author-iamges;
12 }

五、高等用法

  ---->编写翻译结果:

5.1 条件语句

 1 .box .phooto-adam{
 2     background:url("vatars/adam.png") no-repeat; }
 3 .box .phooto-john{
 4     background:url("vatars/john.png") no-repeat; }
 5 .box .phooto-wynn{
 6     background:url("vatars/wynn.png") no-repeat; }
 7 .box .phooto-mason{
 8     background:url("vatars/mason.png") no-repeat; }
 9 .box .phooto-kuroir{
10     background:url("vatars/kuroir.png") no-repeat; }

@if能够用来决断:

三、Sass的函数

p {

  Sass函数首要归纳:

@if 1 1 == 2 { border: 1px solid; }

    字符串函数
    数字函数
    列表函数
    颜色函数
    伊利函数

@if 5 < 3 { border: 2px dotted; }

    Introspection函数

}

    自定义函数

配套的还会有@else命令:

  1、字符串函数

@if lightness($color) > 30% {

    unquote()函数----unquote($String)删除字符串中的引号(只好删除字符串最前和最终的引号);

background-color: #000;

    quote()函数----quote($String)给字符串增加双引号。若是字符串,自己带有引号会联合换成双引号 ""

} @else {

    字符串中间有单引号或然空格时,需求用单引号或双引号括起或去掉空格,否则编写翻译的时候将会报错。
    相同的时间 quote() 碰着特殊符号,比方: !、?、> 等,除中折号 - 和 下划线_ 都供给动用双引号括起,不然编写翻译器在展开编写翻译的时候形似会报错。

background-color: #fff;

    To-upper-case()函数----To-upper-case($string)将字符串中的小写字母调换到大写字母。

}

    To-lower-case()函数----Tolower-case($ST智跑ING)将字符串中的大写字母转变为小写字母。
  2、数字函数

5.2 循环语句

    precentage()函数----precentage($num)将一个不带单位的数值转变到都百货分比格局
      >> precentage(.2) 20%
      >> precentage(2px / 10px) 20%

SASS支持for循环:

    round()函数----round($num)四舍五入到整数

@for $i from 1 to 10 {

    ceil()函数----ceil($num)向上取整

.border-#{$i} {

    floor()函数----floor($num)向下取整

border: #{$i}px solid blue;

    abs()函数----abs($num)绝对值

}

    min()函数、max()函数----min($num...)、max($num...)再次回到多少个参数中的最小、最大值

}

    random()函数----random()获取贰个自便数
  3、列表函数

也支持while循环:

    length()函数----length($list)重临一个列表中有多少个值。注:列表参数之间用空格隔离。

$i: 6;

    nth()函数----nth($list,$n)再次来到列表$list中第$n个值。 >> nth(10px 20px 30px,1)---->10px

@while $i > 0 {

    join()函数----join($list1,list2,$separator)将四个列表归拢成三个列表。

.item-#{$i} { width: 2em * $i; }

      注:只可以合併另个列表。
      $separator = comma(逗号) || space(空格)

$i: $i - 2;

    append()函数----append($list,$obj,$separator)将有个别值($obj)插入到列表后面部分

}

    zip()函数----zip($list...)将四个列表值转产生贰个多维列表
      >> zip(1px 2px 3px,solid solid solid,green blue red)
      ---->((1px solid green),(2px solid blue),(3px solid red))

each命令,作用与for类似:

    index()函数----index($list,$data)重返有些值($data)在列表中的索引值(从1发端),没有找到则赶回false

@each $member in a, b, c, d {

  4、Introspection函数

.#{$member} {

    type-of()函数----type-of($value)再次回到二个值的体系

background-image: url("/image/#{$member}.jpg");

      number

}

      string
      bool

}

      color

5.3 自定义函数

    unit()函数----unit($num)重临多少个值的单位

SASS允许顾客编写本身的函数。

    unitless()函数----unitless($num)判定贰个值是还是不是含有单位

@function double($n) {

    comparable()函数----comparable($num1,$num2)剖断七个值是不是足以做加、减和合併
  5、伊利函数

@return $n * 2;

    if($condition,$if-true,$if-false)

}

    当$condition条件建登时,再次来到值为$if-true,不然重返$if-false。
  6、Map

#sidebar {

    Sass的map平时被称之为数据地图或数组,总以key:value的格局现身

width: double(5px);

    声明map:
    $map : (
      $key1 : $value1,
      $key2 : $value2,
      $key3 : $value3)

}

    map-get()函数----map-get($map,$key)依据给定的key,重回map中对应的值。如空中楼阁则赶回null。

    map-merge()函数----map-merge($map1,$map2)将八个map合并成三个新的map

    map-remove()函数----map-remove($map,$key)从map中删除一个key,重临多个新的map

    map-keys()函数----map-keys($map)重返map中全体的key

    map-values()函数----map-values($map)重返map中全数的value

    map-has-key()函数----map-has-key($map,$key)依据给定的 key 值判定map 是还是不是有照顾的 value 值,要是有再次回到 true,不然再次来到 false。

    keywords()函数----keywords($args)再次来到二个函数的参数,那么些参数能够动态的装置 key 和 value。
  7、颜色函数
  WranglerGB颜色函数

    rgb($red,$green,$blue)遵照红、绿、蓝多少个值创建贰个十一进制颜色

    rgba($red,$green,$blue,$阿尔法)或rgba($color,$阿尔法)根据颜色和光滑度值成立三个颜料

    red($color)从叁个颜料中拿走当中深灰值

    green($color)从一个颜料中得到其铬茶绿值

    blue($color)从一个颜色中收获在这之中乌紫值

    mix($color1,$color2,[$weight])把两种颜色按比例混在一齐.第八个参数是首先种颜色的比例值
  HSL颜色函数 忽视
  Opacity函数 调整总体因素的反射率

  阿尔法($color)/opacity($color)获取颜色光滑度值

  rgba($color,$阿尔法)改造颜色的发光度值

  opacify($color,$amount)/fade-in($color,$amount)使颜色更不透明

  transparentize($color,$amount)/fade-out($color,$amount)使颜色更透明
四、Sass的 @ 规则
Sass 扶植具有 CSS3 的 @ 准则, 以致一些 Sass 专门项目标法则,也被称作“指令(directives)”。
  1、@import 引进文件
  2、@media 媒体询问
  3、@extend 增添选择器或占位符
  4、@at-root 跳出根成分
  5、@debug 调节和测验,Sass 代码在编写翻译出错开上下班时间,在指令终端会输出你设置的唤起 Bug
  6、@warn 调试
  7、@error 调试

本文由pc28.am发布于前端技术,转载请注明出处:制作长投影,关于sass的安装及使用教程

上一篇:0英汉对照版,源码解读 下一篇:没有了
猜你喜欢
热门排行
精彩图文