使用计算属性绑定基于 Vuetify 视口断点的样式



与vuejs一起工作,并尝试根据Vuetify的视口断点来设计一些文本,我通过将样式绑定到这样的条件来实现这一目标:

:style="$vuetify.breakpoint.name === 'xs' ? { 'font-size': '1.5rem !important' }: { 'font-size': '2.5rem !important' }" 

但是,我想使用计算的属性,而只是为了使其更加清洁,根据Vuetify的文档,可以使用Brakepoint对象来实现这一目标,但是我无法使其无法正常工作

我已经研究了这个讨论,并试图从 @raina77ow复制答案,但不太确定我在做什么错。

以下是我的代码;我正在尝试在v-card标题内设计h3元素

<template>
  <div>
    <section>
      <v-layout>
        <v-flex xs12 sm10 offset-sm1>
          <v-card flat width="auto">
            <v-card-title primary-title>
              <h3
                class="text-xs-center headline mb-0"
                :style="fontSize"
              >
                Some Header here
              </h3>
              <div class="text-xs-center pa-5 mx-5">{{ card_text }}</div>
            </v-card-title>
          </v-card>
        </v-flex>
      </v-layout>
    </section>
  </div>
</template>
<script>
export default {
  computed: {
    fontSize() {
      switch (this.$vuetify.breakpoint.name) {
        case "xs":
          return "1.5rem !important";
        default:
          return "3rem !important";
      }
    }
  },
  data() {
    return {
      card_text:
        "Lorem ipsum dolor sit amet, brute iriure accusata ne mea."
    };
  }
};
</script>

查看vuejs devtool,我可以看到计算的属性值按预期更改,但无法弄清楚为什么它不应用于CSS

有人可以告诉我我做错了什么!

看起来计算属性没有返回完整的样式规范。因此,您可以更改计算的函数

case "xs":
    return {"font-size": "1.5rem !important"};
default:
    return {"font-size": "3rem !important"};

或更改其使用方式

:style="{'font-size': fontSize}"

最新更新