为啥@custom-media 没有在 sass 中应用各自的样式

Posted

技术标签:

【中文标题】为啥@custom-media 没有在 sass 中应用各自的样式【英文标题】:Why @ custom-media does not apply the respective styles in sass为什么@custom-media 没有在 sass 中应用各自的样式 【发布时间】:2018-08-25 00:46:30 【问题描述】:

我正在尝试使用 CSS 网格和新规范 CSS level 4 的响应部分进行基本布局,但是在编译 sass 的内容时它对我不起作用,我有什么失败吗?我错过了任何细节吗?

custom-media.scss

* margin: 0 ; padding: 0

@custom-media --phone  ( 320px < width < 480px); 
@custom-media --tablets (481px < width  < 767px);
@custom-media --ipad-landscape  (768px < width < 1024px) and (orientation: landscape);
@custom-media --ipad-normal  (768px < width < 1024px);
@custom-media --desktop  (1025px < width  < 1280px);
@custom-media --large  (width > 1281px);

app.scss

@import 'custom-media';

/**
 *
 * Login Page
 *
 */
 .container
    width: 100vw;
    height: 100vh;
    display: grid;
    grid-template-columns: 60% 1fr;
    grid-row: 1fr;

    .presentation
        background:#CB3BBF;
    

    .loginsection

    

    @media  (--desktop) 
        .container 
            grid-template-columns: 1fr; 
        

        .presentation
            background:blue;
        
    

我尝试将蓝色背景颜色设置为 1025 像素到 1280 像素之间的宽度,但它在 Chrome 版本 64.0.3282.186 中不起作用

【问题讨论】:

你安装github.com/postcss/postcss-custom-media了吗? 【参考方案1】:

你可以使用

@mixin responsive($size)  @if $size == large  /* 1920px / @media (max-width: 120em)  @content;   @if $size == small  / 1199px */ @media (max-width: 74.938em)  @content;    @include responsive(large) font-size: 42px;  @include responsive(small) font-size: 22px; 

这会起作用。

【讨论】:

【参考方案2】:

截至目前(2021 年 12 月),似乎在规范中,@custom-media 尚未在任何地方实现。 caniuse 和 MDN 都不知道 @custom-media。

【讨论】:

以上是关于为啥@custom-media 没有在 sass 中应用各自的样式的主要内容,如果未能解决你的问题,请参考以下文章

移动端页面适配ipad?

为啥 gulp-sass 不创建输出

为啥在 SASS 中 #$var 之后括号不编译?

为啥以下 sass 代码给我一个错误?

为啥我们使用 SASS,甚至我们使用 SCSS? [复制]

为啥添加自定义 SASS 变量在 Ionic 中不起作用?