Как стилизовать ошибки ввода Vue Formulate?
Я пишу веб-сайт на Vue.js, и для обработки пользовательского интерфейса я хочу использовать Vue Formulate. В целом это работает, но у меня проблемы со стилем ошибок ввода. Итак, я попытался сделать очень простой пример изменения цвета фона из списка ошибок, но это не сработало.
Это мой простой компонент:
<template>
<div>
<p>Test for VueFormulate</p>
<FormulateInput
type="text"
validation="required"
/>
</div>
</template>
<script>
export default {
name: 'HelloWorld'
}
</script>
<style scoped>
li.formulate-input-error {
background-color:green;
}
</style>
После загрузки сайта и наличия элемента списка ошибок я могу изменить цвет фона в инструментах разработчика Google Chrome. Но не bevor.
Я надеюсь, что кто-нибудь сможет объяснить, что мне нужно сделать, чтобы это сработало.
1 ответ
Решение
Ваш блок стиля ограничен, что означает, что вы не можете стилизовать элементы, которые не находятся в вашем непосредственном
<template>
(в этом смысл определения объема). У вас есть три варианта:
- Удалить
scoped
часть вашего<style>
блок. Я не рекомендую это делать. - Переместите общие стили формы в глобальный файл css. Я бы рекомендовал это, если вы используете более 1 входа.
- Используйте глубокий селектор, например
::v-deep
. Это отлично подходит для переопределения от случая к случаю и позволяет вам выбирать элементы, которые глубже, чем ваша текущая "область действия". Вот пример:
<style scoped>
.formulate-input::v-deep li.formulate-input-error {
background-color: green;
}
</style>