vue 动态改变stylus里面的变量

<style lang="stylus" scoped>
$width = 30px
.input {
  
  .input_default {
    outline none
    border none
    width $width
  }
  .input_border{
    border 1px solid #ddd
  }
}
</style>

打算封装一个input组件,然后input的宽度可以动态可配置,由父组件传入,stylus里面的$width = 30px 这里的30px 可以做成动态可配置的么?

阅读 6.9k
6 个回答

不可以。通过 :style 来搞吧。

不能用Js修改stylus里边的变量,因为stylus是一种CSS的预编译器,在你的代码完成编译之后会替换所有的stylus变量为确定的值。
你可以考虑使用css的变量。MDN

props 接收父组件传值 divWidth,使用行内样式在标签里写入样式,

<div :style="{width: `${divWidth}px`}"></div>

如果你的项目可以转换写法,请使用 :style;另外,您仍然可以使用 css variable + stylus variable 实现,因为 css variable可以动态 change, 但是 stylus variable 是编译后就不能动态更改的。

内联,通过props三元运算判断动态更改

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题