zoukankan      html  css  js  c++  java
  • sass04 嵌套、继承、占位符

    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-600px){
            color:red;  //屏幕600以下使用这个样式
        }
        
        @media screen and (max-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- 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;
    }
  • 相关阅读:
    Setting up a Reverse Proxy using IIS, URL Rewrite and ARR
    Compare xml files using C# LINQ
    ABAP术语-Authorization Object
    ABAP术语-Authorization Check
    ABAP术语-Authorization
    ABAP术语-Application Server
    ABAP术语-Application
    ABAP术语-APO (Advanced Planner and Optimizer)
    ABAP术语-ALE
    ABAP术语-Accounting Document
  • 原文地址:https://www.cnblogs.com/yaowen/p/6998642.html
Copyright © 2011-2022 走看看