Я бы хотел, чтобы приложение, которое я делаю, использовал reset.css
на глобальном уровне. Мне также хотелось бы, чтобы он проникал во все теневые корни, но имел низкую специфичность. Как я могу это сделать?Таблица стилей сброса Shadow DOM
Допустим, мой reset.css
содержит что-то вроде:
li, ::shadow li {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
Тогда мой пользовательский элемент имеет шаблон, как:
<template>
<style>
li {
padding: 10px;
}
<style>
<ol>
<li>Foo</li>
<li>Bar</li>
<li>Baz</li>
</ol>
</template>
Мой вопрос селектор шаблона li
не обладает достаточной специфичностью бить ::shadow li
. Я не хочу повторять себя в каждом пользовательском элементе. Думаю, я мог бы добавить <link>
к каждому <template>
, но потом я снова повторюсь. Я мог бы также добавить JavaScript в <link>
, но я не уверен, что это лучший способ.
Какими другими способами я мог бы использовать reset.css
, который проникает в теневые корни, но имеет очень небольшую специфичность?
Есть ли причина, по которой вы уклоняетесь от использования классов CSS в своем шаблоне? Почему вы не можете предоставить локальное переопределение для глобальных свойств CSS через класс? –
Вот почему было создано свойство 'all' ... все, что нам нужно сейчас, для всех, кто реализует теневые стили, также реализовать это. – BoltClock
@MikeBrant, я мог бы использовать классы, но даже тогда мне пришлось бы быть более подробным, чем хотелось бы. '.padded {}' не является достаточно конкретным, равно как и 'li.padded' ... Мне пришлось бы использовать' ol li.padded' для переопределения ':: shadow li'. –