Наследовать CSS в компонентах Vue

У меня есть два компонента, у которых есть дочерние элементы в маршрутизаторе, например:

{
        path: '/admin',
        component: AdminMain,
        children:[
            {
                path: '/admin',
                component: AdminHome,
                name: 'AdminHome'
            }
        ]
 },
 {
        path: '/',
        component: Home,
        children:[
            {
                path: '/',
                component: Index,
                name: 'Index'
            }
        ]
 }

Я хочу сделать два отдельных макета для этих компонентов, чтобы их потомки наследовали родительский CSS. Это возможно ? На данный момент я загружаю файл css в каждый компонент с заданной областью действия, потому что мой файл css конфликтует с vuetify css.

У меня был ответ на аналогичный вопрос в stackoverflow.com/a/49654061/5599288. Может быть вам это будет полезно.

Jacob Goh 02.06.2018 18:11

@JacobGoh К сожалению, в моем случае это не работает. Импортированный код в SCSS находится вне тела селектора как новый тег <style>

Adam Galiński 03.06.2018 10:07
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
3 332
2

Ответы 2

Вы можете глубокие селекторы, чтобы повлиять на css дочернего компонента

AdminMain.vue (родительский компонент)

<style scoped>
.a >>> .b { /* ... */ }
</style>

буду переводить на .a[data-v-f3f3eg9] .b { /* ... */ }

тогда .b будет влиять на дочерний компонент (AdminHome.vue)

Хорошо, но я использую бутстрап. В этом случае я должен добавить оператор ">>>" во весь файл?

Adam Galiński 02.06.2018 15:22

С помощью стороннего CSS вы можете импортировать его в компонент main.js или root.

ittus 02.06.2018 15:24

DOM content created with v-html are not affected by scoped styles, but you can still style them using deep selectors.

Эта формулировка на странице Глубокие селекторы документации Vue звучит так, как будто она противоречит сама себе. Но он говорит, например, что если вы хотите применить стиль к элементу 'p' и эти изменения отобразятся в v-html, ваш css должен выглядеть так.

>>> p {
/* some css */
}

Другие вопросы по теме