• SCSS 实用知识汇总


    1、变量声明

    $nav-color: #F90;
    nav {
        //$width 变量的作用域仅限于{}内
        $ 100px;
         $width;
        color: $nav-color;
    }
    
    .a {
        //报错,$width未定义
        width: $width;
    }

    2、父选择器&

    scss代码:

    article a {
      color: blue;
      &:hover { color: red }
    }

    编译后为:

    article a {
        color: blue;
    }
    
    article a:hover {
        color: red;
    }

    父选择器的另外一个用途,可以在父选择器之前添加选择器,如处理IE的hack,在html或者body上添加ie class。

    示例代码:

    #content aside {
      color: red;
      body.ie & { color: green }
    }

    编译后为:

    #content aside {
        color: red;
    }
    
    body.ie #content aside {
        color: green;
    }

    3、群组选择器

    .container {
      h1, h2, h3 {margin-bottom: .8em}
    }

    编译后:

    .container h1,
    .container h2,
    .container h3 {
        margin-bottom: .8em;
    }

    也可以这样:

    nav, aside {
      a {color: blue}
    }

    编译后:

    nav a,
    aside a {
        color: blue;
    }

    4、>、+和~选择器

    article {
      ~ article { border-top: 1px dashed #ccc }
      > section { background: #eee }
      dl > {
        dt { color: #333 }
        dd { color: #555 }
      }
      nav + & { margin-top: 0 }
    }

    编译后为:

    article ~ article {
        border-top: 1px dashed #ccc;
    }
    
    article > section {
        background: #eee;
    }
    
    article dl > dt {
        color: #333;
    }
    
    article dl > dd {
        color: #555;
    }
    
    nav + article {
        margin-top: 0;
    }

    5、SCSS局文件

    sass局部文件的文件名以下划线开头。

    目的:

    sass就不会在编译时单独编译这个文件输出css,而只把这个文件用作导入。

    说明:

    (1)使用sass@import规则并不需要指明被导入文件的全名。你可以省略.sass.scss文件后缀

    (2)当你@import一个局部文件时,还可以不写文件的全名,即省略文件名开头的下划线

    (3)不可以同时存在添加下划线与未添加下划线的同名文件,添加下划线的文件将会被忽略

    6、混合器

    混合器定义:

    @mixin rounded-corners {
      -moz-border-radius: 5px;
      -webkit-border-radius: 5px;
      border-radius: 5px;
    }

    使用混合器:

    notice {
      background-color: green;
      border: 2px solid #00aa00;
      @include rounded-corners;
    }

    编译后为:

    notice {
        background-color: green;
        border: 2px solid #00aa00;
        border-radius: 5px;
    }

    2个关键字:@mixin和@include

    混合器传参:

    @mixin link-colors($normal, $hover, $visited) {
      color: $normal;
      &:hover { color: $hover; }
      &:visited { color: $visited; }
    }

    使用:

    a {
      @include link-colors(blue, red, green);
    }

    编译后为:

    a {
        color: blue;
    }
    
    a:hover {
        color: red;
    }
    
    a:visited {
        color: green;
    }

    混合器主要用于展示性样式的重用

    7、选择器继承

    .error {
      border: 1px red;
      background-color: #fdd;
    }
    .seriousError {
      @extend .error;
      border-width: 3px;
    }

    编译后为:

    .error,
    .seriousError {
        border: 1px red;
        background-color: #fdd;
    }
    
    .seriousError {
        border-width: 3px;
    }

    继承是建立在语义化的关联

    Sass 允许延伸任何定义给单个元素的选择器:

    .error {
    border: 1px #f00;
    background-color: #fdd;
    }
    .error.intrusion {
    background-image: url("/image/hacked.png");
    }
    .seriousError {
    @extend .error;
    border-width: 3px;
    }

    编译后为:

    .error,
    .seriousError {
        border: 1px #f00;
        background-color: #fdd;
    }
    
    .error.intrusion,
    .intrusion.seriousError {
        background-image: url("/image/hacked.png");
    }
    
    .seriousError {
        border-width: 3px;
    }

    8、@media 媒体查询

    .sidebar {
      width: 300px;
      @media screen and (orientation: landscape) {
         500px;
      }
    }

    编译后:

    .sidebar {
        width: 300px;
    }
    
    @media screen and (orientation: landscape) {
        .sidebar {
            width: 500px;
        }
    }

    注意:@media 将被编译到文件的最外层。

  • 相关阅读:
    ios 分享腾讯微博
    ios 分享微信
    elinput 价格校验 大于0保留2位小数,不包含01,01.1这种
    从范闲到许乐,从宁缺再到陈长生
    二进制流 ajax 实现图片上传
    php 操作redis 部分命令
    matlab 与vs2008联合编程的设置备忘
    新型机器人闯入职场:到底是工作缔造者还是工作终结者?
    c++ vs2008 多线程编程的样例
    虚拟试衣创业公司Fitiquette被印度电商Myntra收购
  • 原文地址:https://www.cnblogs.com/mengfangui/p/7244662.html
Copyright © 2020-2023  润新知