Почему мои глобальные стили не работают в приложении vue. js - PullRequest
0 голосов
/ 17 февраля 2020

У меня очень странная проблема. В недавно сгенерированном vue. js проекте с Vue CLI мои файлы s css не работают должным образом. Я использую s css, настроенный в vue .config. js следующим образом:

module.exports = {
  css: {
    loaderOptions: {
      sass: {
        prependData: `
          @import "@/scss/all.scss";
        `
      }
    }
  }
};

У меня есть несколько файлов в папке s css, которые в порядке до момента использования ключевое слово scoped в одном компоненте файла, например, моя навигация. А потом мои глобальные стили почему-то игнорируются:

<template>
  <div class="nav">
    <ul class="nav__menu">
      <li class="nav__item">
        <span>item</span>
      </li>
      <li class="nav__item">
        <span>item</span>
      </li>
      <li class="nav__item">
        <span>item</span>
      </li>
      <li class="nav__item">
        <span>item</span>
      </li>
    </ul>
  </div>
</template>

<script>
export default {};
</script>
<style lang="scss" scoped>
 .nav {
   /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#1e5799+0,00c2a9+100 */
   background: rgb(30, 87, 153); /* Old browsers */
   background: -moz-linear-gradient(
     top,
     rgba(30, 87, 153, 1) 0%,
     rgba(0, 194, 169, 1) 100%
   ); /* FF3.6-15 */
   background: -webkit-linear-gradient(
     top,
     rgba(30, 87, 153, 1) 0%,
     rgba(0, 194, 169, 1) 100%
   ); /* Chrome10-25,Safari5.1-6 */
   background: linear-gradient(
     to bottom,
     rgba(30, 87, 153, 1) 0%,
     rgba(0, 194, 169, 1) 100%
   ); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
   filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#00c2a9',GradientType=0 ); /* IE6-9 */
   border-radius: 15px;
   color: #fff;
   height: calc(100vh - 8px);
   padding: 10px;
   position: fixed;
   top: 4px;
   left: 4px;
   width: 200px;
   z-index: 5;
 }
</style>

глобальные стили:

// not working
html {
  background: black;
  box-sizing: border-box;
  font-size: 13px;

  // but this is working
  *,
  *::before,
  *::after {
    box-sizing: inherit;
  }
}

До сих пор со мной такого не было. Есть ли что-то, чего мне не хватает, потому что я не вижу этого :( Заранее спасибо.

Я нахожусь на Манджаро Linux 18.1.5, с node.js 10.16.0 и npm 6.13. 1, если это может помочь.

1 Ответ

0 голосов
/ 18 февраля 2020

Для будущих читателей - я обнаружил проблему ... s css файлы не импортируются в компонент, если он не содержит тег стиля непустой .

Обнаружен что это довольно плохая идея для каждого файла s css, который будет импортирован во все компоненты, потому что это приведет к очень большому файлу css в конце с большим количеством неиспользуемого / дублированного кода.

Так что теперь я использую файлы css 'global' только для переменных и миксинов, и все работает гладко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...