zoukankan      html  css  js  c++  java
  • sass基础—属性嵌套以及跳出嵌套 @at-root

    /*注意:定义的变量若是没有使用则不会编译到css文件中。*/
    /*1)sass的局部变量*/
    $font:14px;//定义
    $font:12px !default; //没有default时是重新赋值,有了它则先取12再重新赋值为14
    $maps:(color:black,border-color: blue);//maps定义多值变量
    $className:main;//定义类名(此处修改了类名则使用该类名的地方也会相应改变)
    body{
    /*局部变量*/
    $color:red;
    /*2)全局变量*/
    $color: yellow !global;
    color: $color;
    }
    footer{
    font-size: $font;
    color: $color;
    background-color: map-get($maps,color);
    border-color: map-get($maps,border-color);
    }

    /*3)使用定义好的类*/
    .#{$className}{
    color: map-get($maps,color);
    }
    /*4)中横线和下划线的效果一致*/

    $text-info:blue;
    $text_info:green;
    h1{
    color: $text-info; //结果为green,因为重新赋值了
    }


    /*5)样式导入:@import 文件名
    1、部分文件(约定:文件名以下划线开头,不会编译成对应的css文件)
    2、嵌套导入
    3、css原生导入(以.css结尾;导入地址是url:http://xx/css.css;
    文件名是css的url()值)
    4、scss导入:@import scss文件名(可以不写后缀名或下划线)
    */


    /*6)样式书写步骤
    1、根据布局html文件的布局来书写样式嵌套的层级关系如:
    body{
    header{
    .logo{
    img{}
    }
    .nav{

    }
    }
    }

    */

    /*属性嵌套*/
    body{
    footer {
    background:{
    color: red;
    size: 100% 100%;
    }
    }
    a{
    color: yellow;
    &:hover{
    color:blue;
    }
    span{
    color: lightgreen;
    }
    .content{
    color: lightgrey;
    }
    /*引用父选择器a*/
    &.box{
    color: lightpink;
    }
    @at-root .container{
    1920px;
    }
    /*跳出嵌套后的效果不再是body和a下面的了,而是独立出来的一个选择器

    .container {
    1920px;
    }

    */
    }
    }
    /*属性嵌套编译结果
    body footer {
    background-color: red;
    background-size: 100% 100%;
    }
    body a {
    color: yellow;
    }

    body a:hover {
    color: blue;
    }

    body a span {
    color: lightgreen;
    }
    body a .content {
    color: lightgrey;
    }
    body a.box {
    color: lightpink;
    }
    */

    /*7)跳出嵌套
    @at-root跳出选择器嵌套,不能跳出@media或@support,若要跳出这两种
    则需要使用@at-root(without:midia),@at-root(without:support),

    语法关键词:@at-root(@at-root(without:rule)常规css);
    :all (表所有)
    :rule(表常规)
    :media(表media)
    :support;(表support)

    */


    /*跳出media*/
    header{

    .danger{
    color: #f00;
    }
    .warning{
    color: pink;
    }
    .info{
    color: blue;
    }


    /*未跳出media*/
    @meida screen and (max- 600px){
    @at-root .danger{
    color: #f0f;
    }
    }


    /*已跳出midia但是header还在
    header .warning {
    color: #00f;
    }

    */
    @media screen and(max- 600px){
    @at-root(without: media){
    .warning{
    color: #00f;
    }
    }
    }

    /*真正跳出media嵌套
    .info {
    color: #f00;
    }

    */
    @media screen and(max- 600px){
    @at-root(without: media rule){
    .info{
    color: #f00;
    }
    }
    }

    /*使用all也可以跳出所有

    .warning{

    color:#00f;

    }

    */
    @media screen and(max- 600px){
    @at-root(without: media  all){
    .warning{
    color: #00f;
    }
    }
    }
    }

    /*实现跳出header,nav下面也有一个text-danger,此时不需要再次跳出,就是跳出了就违背要在nav下的原则了:
    .text-danger{
    color:#ddd;
    }
    nav .text-danger{
    color:#ccc;
    }
    */
    @at-root .text-danger{
    color: #ddd;
    nav &{
    color: #ccc;
    }
    }


    }

    没有人能一路单纯到底,但是要记住,别忘了最初的自己!
  • 相关阅读:
    84. Largest Rectangle in Histogram (Solution 2)
    84. Largest Rectangle in Histogram (Solution 1)
    73. Set Matrix Zeroes
    【JavaScript】Symbol 静态方法
    【JavaScript】Date
    【JavaScript】Math
    725. Split Linked List in Parts把链表分成长度不超过1的若干部分
    791. Custom Sort String字符串保持字母一样,位置可以变
    508. Most Frequent Subtree Sum 最频繁的子树和
    762. Prime Number of Set Bits in Binary Representation二进制中有质数个1的数量
  • 原文地址:https://www.cnblogs.com/LindaBlog/p/10394442.html
Copyright © 2011-2022 走看看