Задать вопрос
@photosho

Почему не работают глобальные стили в Nuxt + Vue?

Делаю сайт на Nuxt 3 и VueJs. Подключаю глобальные стили scss таким образом:

vite: {
  css: {
    preprocessorOptions: {
      scss: {
        additionalData: `
          @import "@/assets/css/main";
        `,
      },
    },
  },
},


В main.scss импортируются остальные глобальные стили. Стили для элементов (например, body) работают хорошо, а стили вспомогательных классов не хотят. Они загружаются - их можно увидеть в панели разработчика в браузере, но к элементу по какой-то причине не применяются.

Если в том же глобальном файле описывать, например, стили анимации (.slide-fade-enter-active и т.д.), то они тоже не применяются к элементам, когда Vue устанавливает эти классы.

Кто-нибудь сталкивался с такой проблемой? В чем может быть дело?
  • Вопрос задан
  • 383 просмотра
Подписаться 1 Простой 4 комментария
Решения вопроса 1
@photosho Автор вопроса
Проблема решена, всем спасибо. Оказалось, что даже глобальные scss он преобразует при использовании механизма css-модулей. То есть, добавлял к моему классу еще какой-то суффикс - в разделе css класс выводился как есть, а где-то в скомпилированном css в памяти он был с суффиксом и поэтому не работал.

Лечится помещением глобальных классов в раздел "global":

:global {
  .myclass {
    ...
  }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
yarkov
@yarkov Куратор тега Vue.js
Помог ответ? Отметь решением.
Они загружаются - их можно увидеть в панели разработчика в браузере, но к элементу по какой-то причине не применяются

Чудес не бывает. Если стили загружены и видны в браузере, и селектор совпадает с селектором элементов на странице, то будет работать. Проверяйте лучше. Ну и конечно же порядок выполнения посмотрите.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы