scss-@at-root
@at-root指令可以使一个或多个规则被限定输出在文档的根层级上,而不是被嵌套在其父选择器下。
下面就通过scss代码实例介绍一下它的作用:
没有使用@at-root命令的默认情况。
.parent{
color:red;
.child {
width:200px;
height:50px;
}
}
编译成css代码如下:
.parent {
color: red;
}
.parent .child {
width: 200px;
height: 50px;
}
使用@at-root命令的scss代码
.parent{
color:red;
@at-root .child {
width:200px;
height:50px;
}
}
编译后的css代码如下:
.parent {
color: red;
}
.child {
width: 200px;
height: 50px;
}
由于使用@at-root命令,那么.child就不参与嵌套,直接跳出嵌套。
代码在默认情况下@at-root并不会使指定的规则或则选择器跳出指令,比如@media或者@supports。
scss实例如下:
@media print {
@at-root{
.foo {
color: green;
color: gray;
}
}
}
编译后的css代码如下:
@media print {
.foo {
color: green;
color: gray;
}
}
可以看出@at-root默认情况下并不能使规则或者选择器跳出指令。
默认 @at-root 只会跳出选择器嵌套,而不能跳出 @media 或 @support,如果要跳出这两种,则需使用 @at-root(without: media),@at-root(without: support)。这个语法的关键词有
四个:all(表示所有), rule(表示常规), media(表示 media),support(表示 support )。我们默认的 @at-root 其实就是 @at-root( without: rule )。
(1)、@at-root(without: rule)
rule 关键词只能跳出选择器嵌套,不能跳出 @media 和 @support
(2)、@at-root(without: media)
可以跳出 @media ,但是没有跳出父级选择器
scss代码实例如下:
@media print {
.page {
width: 800px;
a {
color: red;
@at-root(without: media) {
span { color: #00f }
}
}
}
}
编译后的css代码如下:
@media print {
.page {
width: 800px;
}
.page a {
color: red;
}
}
.page a span {
color: #00f;
}
由上可以看出 @at-root(without: media) 可以跳出 @media ,但是没有跳出父级选择器,如果我们想跳出 @media 和 父级嵌套,可以一次添加两个指令,两个指令用空格分隔,scss
代码实例如下:
@media print {
.page {
width: 800px;
a {
color: red;
@at-root(without: media rule) {
span { color: #00f }
}
}
}
}
编译后的css代码如下:
@media print {
.page {
width: 800px;
}
.page a {
color: red;
}
} span {
color: #00f;
}
(3)、@at-root(without: support)
@at-root(without: support) 和 @at-root(without: media) 相似,只是跳出的是 @support。
(4)、@at-root(without: all)
@at-root(without: all) 是跳出所的指令和规则,如上面的代码里 @at-root(without: media rule) 我们可以换成 @at-root(without: all),效果是一样的。
scss-@at-root的更多相关文章
- sass或scss入门
1.sass环境搭载: 安装ruby 安装sass 安装compass 配置webstorm 如果只是使用sass的话,就配置sass命名监听就好了 如图: sass目录如下: 如果配置了compas ...
- Webpack: 为Web开发而生的模块管理器[转]
Webpack: 为Web开发而生的模块管理器 原文地址:http://hanjianwei.com/2014/09/10/webpack-package-manager-for-web/ 10 Se ...
- Laravel-mix 中文文档
镜像地址 : https://segmentfault.com/a/1190000015049847原文地址: Laravel Mix Docs 概览 基本示例 larave-mix 是位于w ...
- webpack4配置学习(一)
webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency gr ...
- webapck学习笔记
该笔记是博主学习webpack课程时做的笔记,里面加了一些自己的一些理解,也踩了一些坑,在笔记中基本上都更正过来了,分享给大家,如果发现什么问题,望告知,非常感谢. 1. 为什么要学webapck 为 ...
- 一种比css_scoped和css_module更优雅的避免css命名冲突小妙招
css_scoped 与 css_module 我们知道,简单的class名称容易造成css命名重复,比如你定义一个class: <style> .main { float: left; ...
- CSS预处理器Sass(Scss)、Less、Stylus
CSS 预处理编译器能让我成程序化其的方式编写CSS代码,可以引入CSS中没有的变量.条件.函数等特性,从而让代码更简单易维护,但一般按预处理器语法编写的代码无法直接在浏览器中运行,需用通过工具比如g ...
- webpack 配置 (支持 React SCSS ES6 编译打包 和 模块热更新 / 生成SourceMap)
1.首先是目录结构 |-node_modules/ #包文件 |-build/ #静态资源生成目录 |-src/ #开发目录 |-js/ |-index.js #入口文件 |-app.js #Reac ...
- 4-10 辅助方法controll_name,;SanitizeHelper; 伪元素和scss中的&, @Media; cache介绍。
回顾知识点 1. 在application.html.erb中: <main class="<%= controller.controller_name%>"&g ...
- Sass带来的变革_sass, scss 教程_w3cplus - Google Chrome
Sass带来的变革 作者:大漠 日期:2014-11-17 点击:5291 sass scss 接触Sass差不多有一个年头了,在这一年来的时间中,也花了不少心思在Sass的学习上.同时也让自己喜欢上 ...
随机推荐
- Invalid bound statement (not found): com.taotao.mapper.TbItemMapper.selectByExample: 错误
在Maven工程下,想通过controller接收url中的参数Id查询数据库的数据,并且以json形式显示在页面. 在浏览器输入url后出现的问题: 八月 22, 2016 1:45:22 下午 o ...
- Python3用sys和time模块实现进度条
import sys import time def view_bar(num, total): rate = float(num) / float(total) rate_num = int(rat ...
- php中的各种header整理
<?php header('HTTP/1.1 200 OK'); // ok 正常访问 header('HTTP/1.1 404 Not Found'); //通知浏览器 页面不存在 heade ...
- C++_基础1-基本数据类型
面向对象(OOP)的本质是设计并扩展自己的数据类型.设计自己的数据类型就是让类型与数据匹配. 如果正确做到这一点,就会发现以后使用数据会容易很多.然而创建自己的类型之前,必须了解并理解C++内置类型. ...
- 队列 102 Binary Tree Level Order Traversal
队列的基本应用 - 广度优先遍历 1)树 : 层序遍历: 2)图:无权图的最短路径. 使用队列来实现二叉树的层序遍历,需要多关注一个层数的信息 /** * Definition for a binar ...
- UVA - 11552 DP 划分
每k个字符划分一个组,该组内字符顺序可以任意重排,定义块为最长的连续的字符子串,求长度为m*k的字符串中最少的块的数目 设\(dp[i][j]\):前\(i\)组中第\(i\)组结尾为\(j\)的最优 ...
- Codeforces - 518D 概率DP初步
#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #i ...
- Oracle:DBMS_STATS.GATHER_TABLE_STATS的语法
转自: http://cjjwzs.iteye.com/blog/1143893 作用:DBMS_STATS.GATHER_TABLE_STATS统计表,列,索引的统计信息. DBMS_STATS.G ...
- PIE SDK地图图层渲染方案管理
1. 功能简介 在数据种类较多.渲染规则复杂的情况下,逐个设置其渲染方式是一件繁琐的工作.PIE SDK提供了一种省力省心的办法, PIE SDK提供栅格和矢量数据渲染方案的打开与保存.能够将配色方案 ...
- ORACLE--12C--创建PDB
一,关于创建介绍 1,介绍 CDB支持多种创建PDB的技术.默认CBD会有一个PDB$SEED 创建的PDB自动包括完整数据字典,包括元数据和CDB根目录中系统提供的对象的内部链接.您必须从单个根定义 ...