富在勤中 發表於 2021-9-8 17:38:52

sass 常用备忘案例详解

<h3>一、变量</h3>
<p>所有变量以$开头</p>
<div class="jb51code">
<pre class="brush:css;">
$font_size: 12px;
.container{
    font-size: $font_size;
}</pre>
</div>
<p>如果变量嵌套在字符串中,需要写在#{}中</p>
<div class="jb51code">
<pre class="brush:css;">
$side : left;
.rounded {
    border-#{$side}: 1px solid #000;
}</pre>
</div>
<h3>二、嵌套</h3>
<p>层级嵌套</p>
<div class="jb51code">
<pre class="brush:css;">
.container{
    display: none;
    .header{
      width: 100%;
    }
}</pre>
</div>
<p>属性嵌套,注意,border后需要加上冒号:</p>
<div class="jb51code">
<pre class="brush:css;">
.container {
    border: {
      width: 1px;
    }
}</pre>
</div>
<p> 可以通过&amp;引用父元素,常用在各种伪类</p>
<div class="jb51code">
<pre class="brush:css;">
.link{
    &amp;:hover{
      color: green;
    }
}</pre>
</div>
<h3>三、mixin</h3>
<p>简单理解,是可以重用的代码块,通过@include 命令</p>
<div class="jb51code">
<pre class="brush:css;">
// mixin
@mixin focus_style {
    outline: none;
}
div {
    @include focus_style;
}</pre>
</div>
<p><span style="line-height: 1.5">编译后生成</span></p>
<div class="jb51code">
<pre class="brush:css;">
div {
outline: none; }
</pre>
</div>
<p>还可指定参数、缺省值</p>
<div class="jb51code">
<pre class="brush:css;">
// 参数、缺省值
@mixin the_height($h: 200px) {
      height: $h;
}
.box_default {
      @include the_height;
}
.box_not_default{
      @include the_height(100px);
}</pre>
</div>
<p>编译后生成</p>
<div class="jb51code">
<pre class="brush:css;">
.box_default {
height: 200px; }

.box_not_default {
height: 100px; }</pre>
</div>
<h3><span style="font-size: 1.17em; line-height: 1.5">四、继承</span></h3>
<p>通过@extend,一个选择器可以继承另一个选择器的样式。例子如下</p>
<div class="jb51code">
<pre class="brush:css;">
// 继承
.class1{
      float: left;
}
.class2{
      @extend .class1;
      width: 200px;
}</pre>
</div>
<p>编译后生成</p>
<div class="jb51code">
<pre class="brush:css;">
.class1, .class2 {
float: left; }

.class2 {
width: 200px; }
</pre>
</div>
<h3>五、运算</h3>
<p>直接上例子</p>
<div class="jb51code">
<pre class="brush:css;">
.container{
      position: relative;
      height: (200px/2);
      width: 100px + 200px;
      left: 50px * 2;
      top: 50px - 10px;
}</pre>
</div>
<p>编译后生成</p>
<div class="jb51code">
<pre class="brush:css;">
.container {
position: relative;
height: 100px;
width: 300px;
left: 100px;
top: 40px; }</pre>
</div>
<h3>插入文件</h3>
<p>用@import 来插入外部文件</p>
<div class="jb51code">
<pre class="brush:css;">
@import "outer.scss";
</pre>
</div>
<p>也可插入普通css文件</p>
<div class="jb51code">
<pre class="brush:css;">
@import "outer.css";</pre>
</div>
<h3>自定义函数</h3>
<p>通过@function 来自定义函数</p>
<div class="jb51code">
<pre class="brush:css;">
@function higher($h){
      @return $h * 2;
}
.container{
      height: higher(100px);
}</pre>
</div>
<p>编译后输出</p>
<div class="jb51code">
<pre class="brush:css;">
.container {
height: 200px;
}</pre>
</div>
<h3>注释</h3>
<p>两种风格的注释</p>
<div class="jb51code">
<pre class="brush:plain;">
// 单行注释,编译后消失</pre>
</div>
<div class="jb51code">
<pre class="brush:plain;">
/* 标准的CSS注释,会保留到编译后的代码中 */</pre>
</div>
<p>如果重要的注释,<span style="text-decoration: underline">压缩编译</span>后还想保留,可在 /* 后面加上 !</p>
<div class="jb51code">
<pre class="brush:plain;">
/*!
重要注释,压缩编译也不会消失
*/</pre>
</div>
<p>参考:</p>
<p><a href="http://www.ruanyifeng.com/blog/2012/06/sass.html" rel="external nofollow"target="_blank">http://www.ruanyifeng.com/blog/2012/06/sass.html</a></p>
頁: [1]
查看完整版本: sass 常用备忘案例详解