demo1.scss

body{    //选择器嵌套
background-color:lightgray;
header{
background-color:lightgreen;
}
footer{
background:{ //属性嵌套,仅仅对中划线样式有效
color:red;
size:100% 50%;
}
}
a {
color:red;
&:hover{ //引用父选择器,& = a
color:blue;
}
& span{
color:green;
}
&.content{
color:green;
}
}
@at-root .container{ //跳出body
width:996px;
}
@media screen and (max-width:600px){
color:red; //屏幕600以下使用这个样式
} @media screen and (max-width:600px){
@at-root (without:media){
.container{
color:red; //屏幕600以下使用这个样式
}
}
} @at-root .text-info{
color:red;
@at-root nav &{
color:blue;
}
}
}
.alert{
background-color:#FFEEDD;
}
.s{
font-size:12px;
}
.alert-info{
@extend .alert,.s; //继承
color:red;
} .one{
border:1px solid red;
}
.two{
@extend .one;
color:red;
}
.three{
@extend .two;//链式继承
boder:1px;
} //交叉继承,会出现错误
a span{
font-weight:blod;
}
div .content{
@extend span;
} %abc{ //占位符,没人继承他不会编译到css,有人继承也不会编译他自己,别人继承的会编译
color:blue;
}
.ws{
@extend %abc;
} /*
默认@at-root只会跳出选择器嵌套,而不能跳出@media或@support,如果要跳出这两种,则需使用@at-root (without: media),@at-root (without: support)。这个语法的关键词有四个:all(表示所有),rule(表示常规css),media(表示media),support(表示support,因为@support目前还无法广泛使用,所以在此不表)。我们默认的@at-root其实就是@at-root (without:rule)。 虽然能继承的选择器数量很多,但也有很多是不被支持的。如包含选择器(.one .two)或者是相邻兄弟选择器(.one+.two)
如果继承的元素是a,恰巧这个元素a又有hover状态的形式,那么hover状态也会被继承 占位选择器%:优势在于:如果不调用则不会有任何多余的css文件,避免了以前在一些基础的文件中预定义了很多基础的样式,然后实际应用中不管是否使用了@extend去继承相应的样式,都会解析出来所有的样式。占位选择器以%标识定义,通过@extend调用。
*/

demo1.css

@charset "UTF-8";
body {
background-color: lightgray;
}
body header {
background-color: lightgreen;
}
body footer {
background-color: red;
background-size: 100% 50%;
}
body a {
color: red;
}
body a:hover {
color: blue;
}
body a span, body a div .content, div body a .content {
color: green;
}
body a.content {
color: green;
}
.container {
width: 996px;
}
@media screen and (max-width: 600px) {
body {
color: red;
}
}
body .container {
color: red;
} .text-info {
color: red;
}
nav .text-info {
color: blue;
} .alert, .alert-info {
background-color: #FFEEDD;
} .s, .alert-info {
font-size: 12px;
} .alert-info {
color: red;
} .one, .two, .three {
border: 1px solid red;
} .two, .three {
color: red;
} .three {
boder: 1px;
} a span, a div .content, div a .content {
font-weight: blod;
} .ws {
color: blue;
}

sass04 嵌套、继承、占位符的更多相关文章

  1. sass 继承 占位符 %placeholder

    @extend //SCSS .btn { border: 1px solid #ccc; padding: 6px 10px; font-size: 14px; } .btn-primary { b ...

  2. spring源码分析之配置文件名占位符的解析(一)

    一.直接写个测试例子 package com.test; import org.junit.Test; import org.springframework.context.ApplicationCo ...

  3. Spring PropertyResolver 占位符解析(二)源码分析

    Spring PropertyResolver 占位符解析(二)源码分析 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) ...

  4. SpringBoot环境属性占位符解析和类型转换

    前提 前面写过一篇关于Environment属性加载的源码分析和扩展,里面提到属性的占位符解析和类型转换是相对复杂的,这篇文章就是要分析和解读这两个复杂的问题.关于这两个问题,选用一个比较复杂的参数处 ...

  5. sass中 混合宏 VS 继承 VS 占位符 各自的使用时机和特点

    初学者都常常纠结于这个问题“什么时候用混合宏,什么时候用继承,什么时候使用占位符?”其实他们各有各的优点与缺点,先来看看他们使用效果: a) Sass 中的混合宏使用 举例代码见 2-24 行 编译出 ...

  6. css编译工具Sass中混合宏,继承,占位符分别在什么时候使用

    //SCSS中混合宏使用 @mixin mt($var){ margin-top: $var; } .block { @include mt(5px); span { display:block; @ ...

  7. Sass混合宏、继承、占位符

    混合宏-声明混合宏如果你的整个网站中有几处小样式类似,比如颜色,字体等,在 Sass 可以使用变量来统一处理,那么这种选择还是不错的.但当你的样式变得越来越复杂,需要重复使用大段的样式时,使用变量就无 ...

  8. sass---Sass混合宏、继承、占位符

    混合宏-声明混合宏如果你的整个网站中有几处小样式类似,比如颜色,字体等,在 Sass 可以使用变量来统一处理,那么这种选择还是不错的.但当你的样式变得越来越复杂,需要重复使用大段的样式时,使用变量就无 ...

  9. Sass之混合宏、继承、占位符

    1.混合宏. 当样式变得越来越复杂,需要重复使用大段的样式时,使用变量就无法达到我们目的了.这个时候混合宏就派上用场了. 而使用混合宏时,首先要声明混合宏,而声明混合宏时有两种,不带参数混合宏和带参数 ...

随机推荐

  1. NYIST 1070 诡异的电梯【Ⅰ】

    诡异的电梯[Ⅰ]时间限制:1000 ms | 内存限制:65535 KB难度:3 描述新的宿舍楼有 N(1≤N≤100000) 层 and M(1≤M≤100000)个学生. 在新的宿舍楼里, 为了节 ...

  2. 【转】 C#获取当前程序运行路径的方法集合

    [转] C#获取当前程序运行路径的方法集合 //获取当前进程的完整路径,包含文件名(进程名). string str = this.GetType().Assembly.Location; resul ...

  3. POJ 2369

    我们知道,当循环长度为L时,置换群幂次为K ,则结果是GCD(L,K)个积相乘. 于是,我们只需要求出每个循环的长度,求得它们的最小公倍数即为解. #include <iostream> ...

  4. 构建自己的AngularJS - 作用域和Digest(三)

    作用域 第一章 作用域和Digest(三) $eval - 在当前作用域的上下文中运行代码 Angular有多种方式让你在当前作用域的上下文中运行代码.最简单的是$eval.传入一个函数当做其參数.然 ...

  5. ANSI编码

    ANSI编码 ANSI简介 不同的国家和地区制定了不同的标准,由此产生了 GB2312.GBK.Big5.Shift_JIS 等各自的编码标准.这些使用 1 至 4 个字节来代表一个字符的各种汉字延伸 ...

  6. VC++基于CXImage库实现缩略图

    一般的图像处理软件都对读入程序的图像文件建一个缩略图的列表,像ACDSee那样.笔者最近在做一个图像处理的项目,处理的原始数据就是图像文件.从项目一开始就想做一个缩略图,但一直苦于技术水平有限,且时间 ...

  7. Weblogic安装配置教程

    一.WebLogic的介绍    WebLogic是美国bea公司出品的一个application server,确切的说是一个基于Javaee架构的中间件,纯java开发的,最新版本WebLogic ...

  8. Codeforces 723D. Lakes in Berland

    解题思路: 1.dfs所有的水,顺便计数大小并判断是不是湖. 2.如果是湖,将大小和坐标存下来. 3.对湖按大小从小到大排序. 4.dfs前(湖的数量-k)个湖,用*填充这些湖. 代码: #inclu ...

  9. vue+Element实现tree树形数据展示

    组件: Element(地址:http://element.eleme.io/#/zh-CN/component/tree):Tree树形控件 <el-tree ref="expand ...

  10. C# HttpHelper万能框架实现 接口

    POST请请求是使用Http协议与请求的URL进行连接,然后再写入数据,最后关闭连接的过程 方法(1) //要Post的数据 string postdate = "a=123&c=4 ...