less变量如何随屏幕宽度变化?

作者站长头像
站长
· 阅读数 22
@xw: 10vw;
@media screen and (min-width: 1000px) {
  @xw: 20px;
}
.test {
  font-size: @xw;
}

譬如这样怎么写才能使得变量@xw可以根据屏幕宽度变化,想把这个xw当作一个全局的基准值来使用,但是像上述那样写无论什么宽度都只会是10vw。

回复
1个回答
avatar
test
2024-07-16

不管是 Less 还是 Scss 或者 Stylus,他们的变量都在被编译成CSS的时候就消失了。变成一个固定的CSS属性值。这些CSS预处理器并不会在客户端运行,所以也就是我们为什么会把他们放到 开发依赖 当中。

如果你想要在浏览器环境按照不同业务场景去变更的话,可以使用 CSS 变量。只要你提前定义好上就可以去随时修改和使用它(JS来控制需要放在 body 的行内样式中)。

例如说你的需求

:root{
  --xw: 10vw;
}
@media (min-width: 1000px){
  body{
      --xw: 20px;
  }
}
.test{
  font-size: var(--xw)
}
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容