对于下面同一段css,它们的编译效率是不同的。

1、使用@extend:基础类icon会出现在编译后的css文件中,即使它可能只是拿来被继承,而不是作为icon这个class单独使用

//基础类icon
.icon {
transition: background-color ease .2s;
margin: 0 .5em;
} .error-icon {
@extend .icon;
/* error specific styles... */
} .info-icon {
@extend .icon;
/* info specific styles... */
}

编译为:

.icon, .error-icon, .info-icon {
transition: background-color ease .2s;
margin: 0 .5em;
} .error-icon {
/* error specific styles... */
} .info-icon {
/* info specific styles... */
}

2、使用占位符选择器(以%作为开头的选择器): 它自身不会出现在编译后的CSS文件中, 只会出现在@extend了它的那些选择器中,一般用在制作 Sass 样式库的时候。

上例中, 用%icon替换.icon,CSS中不会出现.icon类:

.error-icon, .info-icon {
transition: background-color ease .2s;
margin: 0 .5em;
} .error-icon {
/* error specific styles... */
} .info-icon {
/* info specific styles... */
}

3、使用@mixin: %选择器和无参数mixin差不多, 在浏览器中产生的效果是一样的, 但是编译后的CSS有很大不同,同样没有icon这个类,但是minx中继承自icon的部分编译了两次,有冗余

@mixin icon {
transition: background-color ease .2s;
margin: 0 .5em;
} .error-icon {
@include icon;
/* error specific styles... */
} .info-icon {
@include icon;
/* info specific styles... */
}

编译为:

.error-icon {
transition: background-color ease .2s;
margin: 0 .5em;
/* error specific styles... */
} .info-icon {
transition: background-color ease .2s;
margin: 0 .5em;
/* info specific styles... */
}

综上所述:

对于基础类会单独作为class使用时,使用@extend。

在制作样式库时,使用占位符编译上效率更好。

对于大量重复使用的基础样式,可以使用@mixin。

sass中的占位符%,@extend,@mixin(@include)的编译区别和使用场景的更多相关文章

  1. Java C# C语言中的占位符

    一般拼接一段字符串在编程中是很常见的事,下面简单做个总结: 什么是占位符?占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号. 1.Java中处理方法: package com.amos; ...

  2. 安卓编程资源文件string中对占位符的使用详解

    这里将为你详细介绍占位符的使用,将其学以致用,可以达到简化布局文件,减少字符串资源量. 1.在资源文件中的使用. 打开资源文件中的strings.xml文件,进行编辑.如下图所示: 图  1.0 2. ...

  3. 【占位符替换】替换String中的占位符标志位{placeholder}

    概述 占位符替换, 占位符表示为:{placeholder}; 示例:替换如下{xxx}占位符中的内容 "名字:{name},年龄:{age},学校:{school}" 提供了两种 ...

  4. Java替换字符串中的占位符

    在开发中,会有动态配置字符串其中的某些字符,如何使用字符中的占位符,并且在代码动态替换占位符实现动态配置字符串! 1.定义字符串时,再string文件添加字符串: 注意!记得要在字符文件中加上这些: ...

  5. hibernate查询语句hql中的占位符?参数与命名参数:name设值方式搞混

    先贴出异常 Struts has detected an unhandled exception: Messages: Position beyond number of declared ordin ...

  6. C# 中的占位符本质

    占位符本质 1.占位符是相对于String字符串类型而言的. 2.占位符其实就是调用String.Format()方法.把指定的变量拼接到定义好的字符串模板中组成新的字符串.

  7. Objective-C中的占位符,打印BOOL类型数据

    常用的一些占位符: %@:字符串占位符 %d:整型 %ld:长整型 %f:浮点型 %c:char类型 %%:%的占位符 尽管有那么多的占位符,但是好像没有发现BOOL型的数据的占位符,这也是比较纠结的 ...

  8. spring 的 PropertyPlaceholderConfigurer读取的属性怎么访问 (java访问方式,不是xml中的占位符哦)及此类的应用

    一.1.占位符的应用:(@Autowired注解方式,不需要建立set与get方法了,xml注入也不需要写了) http://www.cnblogs.com/susuyu/archive/2012/0 ...

  9. C#中的占位符

    当我们需要在屏幕上输出一句话的时候,如果不断的使用+来连接各个字符串,一是容易出错,二是代码显示的非常乱.这时候,占位符就能够发挥作用! 占位符: string name="张三" ...

随机推荐

  1. jquery对div元素进行鼠标移动(稍稍修改下可以实现div跟随鼠标)

    /* 网上找了资料都是对于event.clientX和offset().left进行了计算,但是去掉了这个计算方式,直接使用当前坐标也一样,效果都一样不太好 strHeader:标题 jquery定位 ...

  2. 在Gridview 中 对日期格式的控制

    在数据库中保存日期格式的时候,我们需要在客户端的显示有自己的要求 这就需要对 datatime 类型的数据进行控制,使之显示为你需要的格式 数据库中 如果不对其进行控制,显示的格式为 当在前端页面上进 ...

  3. 如何使用RedisTemplate访问Redis数据结构之Zset

    Redis的ZSet数据结构 Redis 有序集合和无序集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过分数来为集合 ...

  4. 【题解】Luogu P5324 [BJOI2019]删数

    原题传送门 易知这个数列的顺序是不用考虑的 我们看两个数列 \(1,2,3\)和\(3,3,3\)都能删完,再看两个数列\(1,2,3,4\)和\(2,2,4,4\),也都能删完 不难发现,我们珂以把 ...

  5. Dockerfile构建jar镜像

    dockerDockerfilejar包docker-compose 一.安装docker和compose 二.准备jar包 三.编写配置文件 1. Dockerfile 2. docker-comp ...

  6. Java之路---Day04

    2019-10-18-21:35:36 面向对象 学面向对象前要先知道什么叫面向过程,了解了什么叫面向过程才容易理解面向对象 面向过程(强调步骤) 概念:当需要实现一个功能的时候,每一个具体的步骤都要 ...

  7. 自学Python编程的第五天(希望有IT大牛帮我看最下面的代码)----------来自苦逼的转行人

    2019-09-15-15:40:24 今天没有学知识,是一个一周总结,把这一周学的知识总结一遍,然后把做过的练习题再做一遍 看是否还会有再出现同样的错误,而且还可以知道有哪些知识点没有掌握好,可以把 ...

  8. Oracle PLSQL数据导出csv的案例

    之前项目运维人员碰到一个问题,需要写一个存储过程,把数据导出为csv文件,查了一些资料,帮他写成了一个PLSQL,今天拿出来分享一下,不足之处,欢迎指教. 数据背景:  用到两张表,一张存放单位组织名 ...

  9. js文本对象模型【DOM】(十一)

    一.W3C DOM 标准被分为 3 个不同的部分:1.Core DOM - 所有文档类型的标准模型[)Document--> 9;Element -->1;TextNode -->3 ...

  10. I2C总线

    PHILIPS公司开发的两线式串行总线 GPIO模拟i2c驱动中有自己的一套传输算法.GPIO模拟I2C是要占用CPU资源的,而用I2C芯片是不占CPU资源的 特点 接口线少,控制方式简单,器件封装形 ...