【问题标题】:Media query in mixin being overriddenmixin 中的媒体查询被覆盖
【发布时间】:2017-01-14 02:26:16
【问题描述】:

我制作了一个“响应属性”mixin,它将一个 css 属性及其在五个不同断点处的值作为参数:

@mixin responsiveProp ($prop, $xs, $sm, $md, $lg, $xlg) {
  @media only screen and (min-width: 0px) {
    #{$prop}: $xs;
  }
  @media only screen and (min-width: 768px) {
    #{$prop}: $sm;
  }
  @media only screen and (min-width: 992px) {
    #{$prop}: $md;
  }
  @media only screen and (min-width: 1200px) {
    #{$prop}: $lg;
  }
  @media only screen and (min-width: 1440px) {
    #{$prop}: $xlg;
  }
}

例如@include responsiveProp(height, 1300px, 900px, 550px, 500px, 500px);

这通常可以很好地减少 CSS 中的 LOC,但是当在 Chrome 开发工具中使用智能手机布局测试上述示例时,$xs 断点被 $sm 断点覆盖,尽管宽度小于 768px。我不明白为什么会这样。有什么想法吗?

【问题讨论】:

  • 你应该结合 min 和 max:...and (min-width: 0px) and (max-width:767px) (max 应该是下一个 min -1)
  • @somethinghere 不,它仍然不起作用,它不应该有任何区别,因为满足条件的逻辑没有改变
  • 你的输出是什么?您是否设置了正确的视口元标记?
  • 啊,是的,我错过了视口标签。谢谢!
  • 这种格式并没有真正的用处。您能否隔离输出并将其添加到您的帖子中?这里一定有别的东西在做某事。 (只是一个旁注,但如果你不小心,这个系统会使用@media 产生很多规则,所以请记住这一点)

标签: css sass media-queries google-chrome-devtools


【解决方案1】:

我忘记将其添加到我的 index.html:<meta name="viewport" content="width=device-width, initial-scale=1">。这样就解决了问题。

【讨论】:

  • 呜呜呜。好东西,虽然你应该立即在设备上注意到这一点:)
猜你喜欢
  • 2014-12-07
  • 1970-01-01
  • 2012-07-10
  • 1970-01-01
  • 2019-05-07
  • 2016-02-10
  • 2014-05-09
  • 2020-12-23
  • 1970-01-01
相关资源
最近更新 更多