【问题标题】:@viewport, @media and LESS@viewport、@media 和 LESS
【发布时间】:2013-07-15 23:51:47
【问题描述】:

我最近将一些 CSS 转换为 LESS 以用于 .NET 应用程序(我正在使用 .NET 的 dotless,http://www.dotlesscss.org/ 在运行时编译 LESS)。

编译器落在这两个代码块上:

@viewport {
  width: device-width;
}
/* Add a min-width for IE 8 and lower */
@media \0screen\,screen\9 {
    body {
        min-width: 960px;
    }
}

仅供参考,上面的媒体查询是一种针对 IE 的 hacky 方式

如何“减少”这些代码块?

【问题讨论】:

    标签: css less media-queries viewport


    【解决方案1】:

    在 Less >= 1.4.0 中,您可以简单地定义一个变量并在媒体查询中使用它:

    @iehack: \0screen\,screen\9;
    
    @media @iehack {
        body {
            min-width: 960px;
        }
    }
    

    在旧版本的 LESS (

    @iehack: ~'\0screen\,screen\9';
    

    这应该会给你想要的输出。

    但是,如果您想在 CSS 中采用 hacky 方式,您也可以在 LESS 中采用 hacky 方式:

    @themedia: ~"@media \0screen\,screen\9 {";
    @aftermedia: ~"} after";
    @{themedia} {
        body {
            min-width: 960px;
        }
    }
    @{aftermedia}{/*just to add the closing bracket to media*/}
    

    你在一个普通角色周围注入媒体查询,这会在媒体块的末尾生成一个额外的选择器,但你也可以将它用于有用的东西,这种技术可能用于more exciting instances而不是媒体查询...但我只是想提一下。

    在这种情况下,CSS 输出如下所示:

    @media \0screen\,screen\9 { 
    body {
      min-width: 960px;
    }
    }
    after {
      /*just to add the closing bracket to media*/
    }
    

    【讨论】:

    • 非常有用!谢谢:)
    猜你喜欢
    • 1970-01-01
    • 2014-01-08
    • 2013-10-22
    • 2014-07-02
    • 2014-10-14
    • 2020-07-10
    • 2016-03-30
    • 2011-04-03
    • 1970-01-01
    相关资源
    最近更新 更多