css - 如何在 Less 中使用字符串插入映射值

标签 css less

我似乎无法让我的 LESS 映射逻辑工作。我关注了documentation关于映射。

@screen-size-min: {
  mobile-small: 320px;
  mobile-large: 480px;
  tablet-small: 600px;
  tablet-large: 768px;
  desktop-small: 992px;
  desktop-large: 1280px;
}

@min: min-width;

@desktop-small-min: ~"only screen and (@{min}: @screen-size-min[desktop-small])";

p {
  color: blue;

  @media @desktop-small-min {
    color: red;
  }
}

我希望这段代码可以编译成 css,但媒体查询似乎无法编译。

p {
  color: blue;
}

@media only screen and (min-width: 992px) {
  p {
    color: red;
  }
}

我尝试在 lesstester 上测试它但目前只支持 LESS 2.7。 map 是 LESS 3.5 中的新功能

没有编译错误。我哪里出错了?

最佳答案

发生这种情况是因为 key[value] 实际上不是一个变量,变量是 map @screen-size-min,因此你不能利用变量插值。一种解决方案是简单地将 KVP 与字符串的其余部分连接起来:

@desktop-small-min: ~"only screen and (@{min}:" @screen-size-min[desktop-small] ~ ")";

这消除了对创建另一个变量的任何依赖,只是为了对其进行插值

此外,根据他们的文档,引入了 map :

Released v3.5.0

而你测试的在线测试仪只支持2.7

Codepen 通常支持他们的最新版本。这是一个匿名笔演示:

https://codepen.io/anon/pen/zeXmev

如果你点击“CSS(Less)”标题旁边的小向下箭头,你可以选择“查看编译的 CSS”,它会显示 LESS -> CSS 输出

关于css - 如何在 Less 中使用字符串插入映射值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54795392/

相关文章:

javascript - phonegap/backbonejs 应用程序的 ios7 样式

javascript - Webpack 运行 .LESS 和 .SCSS 编译。提取文本插件不适用于一个捆绑文件

css - 使用 LESS 创建相对路径混合

javascript - 为什么固定元素在放大 (iPad) 时超出视口(viewport)?

javascript - OnMouseOver 使用 <asp :image runat=

css - 在不删除 float 的情况下 Bootstrap 相同高度的列

html - 过渡在 IE 中不起作用

css - 有没有办法在 css 和/或更少的元素中选择一个元素和 sibling ?

css - LESS CSS - 提取生成的 CSS

css - 使用 Node 编译 Less,使用动态变量