zoukankan      html  css  js  c++  java
  • 4.Scss嵌套

    Sass为我们提供了一种方便的操作方式:嵌套。在Sass中,共有3种嵌套方式:

      (1)选择器嵌套;

            例如:      

            $color1:red;

            $color2:green;
            $color3:blue;
            body
              {
                color:$color1;
                .column
                {
                  color:$color2;
                  .content-title
                  {
                  color:$color3;
                  }
                 }
              }
          编译出来的css代码:
            body
            {
              color: red;
              }
            body .column
            {
            color: green;
             }
          body .column .content-title
            {
            color: blue;
             }

    弊端:

    选择器嵌套这种方式虽然操作起来很方便,但是却有一个很大的弊端:嵌套的层级越深,编译出来的CSS代码的选择器层级也越深。这种嵌套方式会导致CSS样式冗余,并且难以维护。尽量少用选择器嵌套的方式来书写Sass

    2)属性嵌套;相同的前缀可以拿出来。

    例如:

        {

           100px;

            height:100px;
            font:
            {
            family:Arial;
            size:14px;
            weight:bold;
            }
          }
    编译出来的css代码如下:
               div
         {
        width: 100px;
        height: 100px;
        font-family: Arial;
        font-size: 14px;
        font-weight: bold;
        }
    对于属性嵌套,我们要特别注意一点在需要嵌套的属性前缀后面一定要加英文冒号“:”,不然编译出来的就不是我们想要的效果。

    3)伪类嵌套或伪元素嵌套;

      在Sass中,还有一种嵌套方式:伪类嵌套或伪元素嵌套。伪类嵌套(或伪元素嵌套)跟属性嵌套很像,只不过它是需要借助“&”符号一起配合使用。

    常见的伪元素只有4个,即::before、::after、::first-letter、::first-line

    举例:伪类嵌套:

           $color1:red; 

      $color2:green;
        a{ 
        color:$color1;
        &:hover
        
         color:$color2;
        }
        }
    编译出来的css代码:
          a
        {
          color: red;
        }
        a:hover
        {
          color: green;
        }
    伪类嵌套都是结合“&”符号来实现的,编译的时候“&”会替换成相应的选择器。
     举例:伪元素嵌套
        .clearfix
          {
            *zoom:1;
            &:after
            {
            clear:both;
            content:"";
            display:block;
            height:0;
            visibility:hidden;
            }
            }
    编译出来的css代码:
          .clearfix{*zoom:1;}
          .clearfix::after
            {
            clear:both;
            content:"";
            display:block;
            height:0;
            visibility:hidden;
            }
    伪元素嵌套同样也是结合“&”符号来实现的,编译的时候“&”会替换成相应的选择器。上面这个是清除浮动最常用的方法
  • 相关阅读:
    网站图片上传,水印,预览,截图
    go语言中的数组切片:特立独行的可变数组
    Android ADB server didn't ACK * failed to start daemon * 简单有效的解决方案
    MongoDB删除文档
    顺为资本CEO许达来:为什么说中国创业者很幸福?(附PPT)
    星瀚资本杨歌:我七次创业失败的内心感悟(比较真实,可以看看创业的36条军规)
    晨兴资本刘芹:入行16年我才刚理解创投,有8个最深感悟
    20 个免费开源的 CSS3 用户界面工具包
    Google浏览器的缓存文件过大(mega网站导致的)
    FastSocket客户端/服务端通讯示例
  • 原文地址:https://www.cnblogs.com/hou-yuan-zhen/p/11615373.html
Copyright © 2011-2022 走看看