Vue-Material中字体的更改不起作用

时间:2018-03-05 16:42:38

标签: css vue.js vuejs2 components vue-material

下面是我的App.vue文件代码,我遇到了更改md-tabs中字体,https://vuematerial.io/components/tabs组件的问题。 CSS中的一行:

background: #42A5F5;

有效,但这不是

color: #E3F2FD;

App.vue

<template>
      <div id="app">

        <md-tabs md-sync-route>
          <md-tab id="tab-home" md-label="Home" to="/"></md-tab>
          <md-tab id="tab-settings" md-label="Settings" to="/Settings"></md-tab>

        </md-tabs>

        <router-view></router-view>
      </div>
    </template>

    <script>
      export default {
        name: 'App'
      }
    </script>

    <style lang="scss" scoped>
      #app {
        font-family: 'Avenir', Helvetica, Arial, sans-serif;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        text-align: center;
        color: #E3F2FD;
      }

      .md-tabs {
        background: #42A5F5;
        color: #E3F2FD;
      }

    </style>

2 个答案:

答案 0 :(得分:2)

这是CSS Specificity的问题。

参见DOM:

<div data-v-7ba5bd90 id="app">
  <div data-v-7ba5bd90 class="md-tabs md-alignment-left md-theme-default">
    <div class="md-tabs-navigation md-elevation-0">
      <button type="button" class="md-button md-theme-default md-active">
        <div class="md-ripple">
          <div class="md-button-content">Home</div>
        </div>
      </button>
      ...

您的.md-tabs { color: #E3F2FD; }样式正在应用于<div data-v-7ba5bd90 class="md-tabs md-alignment-left md-theme-default">(第2行)。

button(第4行)的风格更具体,因此在<div class="md-button-content">Home</div>(第6行)中占主导地位。

关于background,同样适用于.md-tabs { background: #42A5F5; },但它似乎不会影响您,因为实际应用于button的颜色为{{1} },在transparent中声明。所以按钮是透明的。实际上是彩色的是它的父.md-button

解决方案:

即使您执行了div,它仍然无法正常工作,因为Vue实际上会声明.md-button-content { color: #E3F2FD }而内部.md-button-content[data-v-12345] { color: #E3F2FD }不会获得此类属性。< / p>

您唯一的解决方案是声明一个非<div class="md-button-content">Home</div> scoped标记,并将其放在那里:

<style>

演示:https://codesandbox.io/s/4q8jzq9mzx?module=%2Fsrc%2FApp.vue

答案 1 :(得分:0)

组件具有隔离范围,因此例如应用css将不适用于组件。

您应该考虑在组件中应用css或定义全局css文件并包含。