好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Sass占位符实例讲解

在Sass中,我们引入了占位符[%placeholder]来进一步优化[@extend]。我们先来看一个例子。

举例:使用继承[@extend]

 .btn
{
    padding:6px 10px;
    border:1px solid silver;
    font-size:14px;
}
.btn-primary
{
    @extend .btn;
    color:white;
    background-color:red;
}
.btn-second
{
    @extend .btn;
    color:orange;
    background-color:green;
} 

编译出来的CSS代码如下:

 .btn, .btn-primary, .btn-second
{
    padding: 6px 10px;
    border: 1px solid silver;
    font-size: 14px;
}
.btn-primary 
{
    color: white;
    background-color: red;
}
.btn-second 
{
    color: orange;
    background-color: green;
} 

分析:

从这个例子我们可以看出,继承[@extend]是非常好用的。通过@extend,我们可以直接在[.btn-primary]和[.btn-second]中插入定义好的[.btn],这样每次只要你修改了[.btn]中的样式,[.btn-primary]和[.btn-second]中的样式都会同时修改。

但是稍微细心的小伙伴应该也发现了,如果我们的HTML中没有任何一个元素使用[.btn]的话,[.btn]存在的唯一目的就是仅仅用来给[.btn-primary]和[.btn-second]继承。也就是说,[.btn]这个类在编译出来的CSS中是多余的。那有没有更好的办法来实现我们预期效果呢?

在新版本的Sass中,引入了[占位符%placeholder]来优化[继承@extend]的输出。

举例:

 %btn
{
    padding:6px 10px;
    border:1px solid silver;
    font-size:14px;
}
.btn-primary
{
    @extend %btn;
    color:white;
    background-color:red;
}
.btn-second
{
    @extend %btn;
    color:orange;
    background-color:green;
} 

编译出来的CSS代码如下:

 .btn-primary, .btn-second
{
    padding: 6px 10px;
    border: 1px solid silver;
    font-size: 14px;
}
.btn-primary 
{
    color: white;
    background-color: red;
}
.btn-second 
{
    color: orange;
    background-color: green;
} 

分析:

上一个例子,我们是定义一个基类[.btn](类,都是以[.]开头)。而在这个例子中,我们是定义一个占位符[%btn](占位符,都是以[%]开头)。我们对比一下这两个例子的输出结果就可以知道,使用占位符的输出结果是不包含基类的。

[占位符%placeholder]并非用来替换[继承@extend]的,而是用来配合[继承@extend]来使用的。从上面我们可以知道,继承@extend有2种输出方式:

(1)需要保留基类的:只使用@extend来实现; (2)不需要保留基类的:使用@extend配合%placeholder来实现;

此外在实际开发中,继承中的基类是否就一定要去掉呢?这个倒不一定。如果你的HTML结构需要用到基类,则不需要使用占位符的方式来去掉;如果你的HTML不需要用到基类,则建议使用占位符配合继承来去掉。

查看更多关于Sass占位符实例讲解的详细内容...

  阅读:29次

上一篇

下一篇

第1节:Sass安装步骤    第2节:Sass 继承、占位符和混合宏    第3节:Sass变量简介    第4节:Sass插值实例讲解    第5节:Sass 教程 - Sass入门学习    第6节:Sass代码重用    第7节:Sass开发工具介绍    第8节:Sass的三种基本运算介绍    第9节:Sass继承实例讲解    第10节:Sass混合宏实例介绍    第11节:Sass流程控制@if语句    第12节:Sass流程控制@for循环    第13节:Sass流程控制@each循环    第14节:Sass基本运算介绍    第15节:Sass 数据类型详细介绍    第16节:Sass 嵌套方式讲解    第17节:Sass语法基础总结    第18节:Sass四种数字运算详细介绍    第19节:实现Sass注释的三种方式    第20节:Sass流程控制详细介绍    第21节:Sass占位符实例讲解    第22节:Sass颜色运算详细介绍    第23节:Sass字符运算介绍    第24节:Sass流程控制@while循环