css - 在 mixin 中使用 SASS 媒体查询进行意外编译

标签 css sass media-queries vaadin

我目前正在为 Vaadin 元素编写一些前端代码。我正在尝试启动并运行一些响应式样式。不幸的是,Vaadin 内置了响应式附加组件 does not have support for IE11 .

所以想用媒体查询来做响应式设计。我有两个 SASS 文件:commontheme.scss 是所有通用样式,mymixin.scss 包含所有桌面特定样式。

这是我的代码:

@import "../commontheme/commontheme.scss";  //the common them. The common theme

@mixin mymixin
{
    @include commontheme; //Including the stuff from the common theme.

    $small-size: 100px;
    $med-size: 200px;

    @media (max-width:500px)
    {
        .my-image
        {
            width: $small-size;
        }
    }

    @media (min-width:501px)
    {
        .my-image
        {
            width: $med-size;
        }
    }
}

这会编译成以下 CSS:

.mymixin
{
    @media (max-width:500px)
    {
        .my-image
        {
            width: 100px;
        }
    }

    @media (min-width:501px)
    {
        .my-image
        {
            width: 200px;
        }
    }
}

而我需要的是下面的代码,如果我在编译的 CSS 中实时编辑 block 开头和结尾的违规行,它就可以正常工作。

@media (max-width:500px)
{
    .my-image
    {
        width: 100px;
    }
}

@media (min-width:501px)
{
    .my-image
    {
        width: 200px;
    }
}

我是整个开发堆栈的新手。所以我假设我在某处做错了什么,但我没有运气修复它。如果这里有人可以提供一些见解或研究方向,我将不胜感激。

作为引用,我使用的是 Vaadin 7.2.3,它应该包括完整的 SASS 支持。

最佳答案

你只需要像这样把 @media 标签从 mymixin 中取出:

$myVar: 100px;
@mixin mymixin
{
    @include commontheme; //Including the stuff from the common theme.
    .my-image
    {
        width: $myVar;
    }
}

$myVar: 50px;
@media (max-width:500px)
{
    .mymixin
    {
        .my-image
        {
            width: $myVar;
        }
    }
}

您可能会在单独的 .scss 文件中添加 @media mixins,并将其包含在 main myTheme.scss 中,但文件结构概念不是这个问题的一部分。

关于css - 在 mixin 中使用 SASS 媒体查询进行意外编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26440192/

相关文章:

jquery - jQ根据周围的div动态设置div高度

html - 使用@font-face 将 CSS 变换旋转应用于元素

npm - 我如何使用全局 scss 变量覆盖我的节点模块

css - 如何命名仅包含@import 语句的 Sass 文件

html - 媒体查询在特定的 IE 查询中不起作用

php - 如何使用纯 PHP 格式化带有样式、字体、颜色、表格等的 excel 文件?

html - 为什么隐藏了部分图像

javascript - 对字符串或流使用自动前缀

css - 使用媒体查询针对 iOS 进行优化时,网站标题被推到一侧

css - 响应式媒体查询在 wordpress 中不起作用