美文网首页
Stylus预处理器简介(十四)@MEDIA

Stylus预处理器简介(十四)@MEDIA

作者: 曲昶光 | 来源:发表于2021-07-29 09:02 被阅读0次

    @MEDIA

    @media 查询的工作原理和常规 CSS 中的完全一致,但是需要使用 Stylus 的代码块表示法(block notation):

     @media print
       #header
       #footer
         display none
    

    转换为:

      @media print {
        #header,
        #footer {
          display: none;
        }
      }
    

    媒体查询冒泡

    媒体查询也可以嵌套,它们将被展开以包装它们所使用的上下文。例如:

    .widget
      padding 10px
      
      @media screen and (min-width: 600px)
        padding 20px
    

    转换为

    .widget {
      padding: 10px;
    }
    
    @media screen and (min-width: 600px) {
      .widget {
        padding: 20px;
      }
    }
    

    嵌套媒体查询

    你可以将@medias一个嵌套到另一个中,它们可以组合成一个:

    @media (max-width: 500px)
      .foo
        color: #000
    
      @media (min-width: 100px), (min-height: 200px)
        .foo
          color: #100
    

    转换为

    @media (max-width: 500px) {
      .foo {
        color: #000;
      }
    }
    @media (max-width: 500px) and (min-width: 100px), (max-width: 500px) and (min-height: 200px) {
      .foo {
        color: #100;
      }
    }
    

    插值和变量

    可以在媒体查询中同时使用插值和变量,因此可以执行以下操作:

    foo = 'width'
    bar = 30em
    @media (max-{foo}: bar)
      body
        color #fff
    

    转换为

    @media (max-width: 30em) {
      body {
        color: #fff;
      }
    }
    

    也可以在媒体查询中使用表达式:

    .foo
      for i in 1..4
        @media (min-width: 2**(i+7)px)
          width: 100px*i
    

    转换为

    @media (min-width: 256px) {
      .foo {
        width: 100px;
      }
    }
    @media (min-width: 512px) {
      .foo {
        width: 200px;
      }
    }
    @media (min-width: 1024px) {
      .foo {
        width: 300px;
      }
    }
    @media (min-width: 2048px) {
      .foo {
        width: 400px;
      }
    }
    

    相关文章

      网友评论

          本文标题:Stylus预处理器简介(十四)@MEDIA

          本文链接:https://www.haomeiwen.com/subject/elpumltx.html