【问题标题】:Using Vue variables in styles在样式中使用 Vue 变量
【发布时间】:2019-10-20 19:37:18
【问题描述】:

所以我想在组件底部的<style> 标签中使用一些 Vue 数据/属性变量。

假设我有一个这样的组件:

<template>
  <div class="cl"></div>
</template>
<script>
export default {
  data () {
    return {
      val: '30px'
    }
  } 
..
}
</script>
<style>
.cl p{
  height: 30px;
}
</style>

我想以某种方式使用 &lt;style&gt;&lt;/style&gt; 中的 val 数据变量,这样我就可以这样设置它的样式。

现在我知道这样做&lt;div :style="{'height':val}"&gt;&lt;/div&gt; 是您使用 vue 道具/变量的样式。但这只会设置那个 div 的样式。我希望我的 div 中的所有 p 标签或任何标签都具有某种样式,而这只能通过将其声明为一个类来完成。

还有另一种方法,通过定义类并使其成为活动(真/假)值,例如:&lt;div :class="{'cl': someBoolVariable}"&gt;&lt;/div&gt;。但是,如果我希望它足够动态以根据从父组件传递的某些计算/值来更改 height 怎么办?

如果可能的话,我需要这样的东西:

<style>
.cl p {
  height: val;
}
</style>

如果可能的话,任何人都可以提出一种方法吗?或者一个简单的解决方法来实现这一点?

【问题讨论】:

    标签: javascript html css vue.js


    【解决方案1】:

    您可以在您的主要div 元素上使用CSS variable 来实现它

    <template>
      <div class="cl" :style="'--p-height: ' + val"></div>
    </template>
    
    <script>
      export default {
        data() {
          return {
            val: '30px'
          }
        } 
      }
    </script>
    
    <style>
    .cl p {
      height: var(--p-height);
    }
    </style>
    

    这是jsfiddle

    【讨论】:

    • 你也可以这样做:`:style="{'--p-height': val}"?
    • @hrishikeshpaul 是的,是一样的
    猜你喜欢
    • 1970-01-01
    • 2022-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 2019-07-15
    • 2021-10-08
    相关资源
    最近更新 更多