Полимерный пользовательский стиль иногда каскадирует некорректность
Я заметил, что каскад не всегда корректен при использовании пользовательского стиля polymer. Судя по всему, это может быть ошибкой в том, как каскад применяется к пользовательским элементам, но я просто хотел бы подтвердить, что я не делаю что-то глупое.
Рассмотрим следующий стиль для моего пользовательского элемента:
#price ::content .price span {
display: block;
padding: 4px;
border-top: 1px solid var(--color-gray1);
}
#price ::content .price span:first-child { border-top: none; }
... но после рендеринга :первенец переопределяется первым определением, как вы можете видеть на рисунке ниже. Единственный способ убедиться, что мой border: none
применяется правильно, заключается в использовании !important
, чего я предпочел бы не делать.
!important
в качестве быстрого решения, но это начинает казаться неуклюжим.
Просто добавляю изображение визуализируемого элемента сюда, чтобы показать "неправильную" верхнюю границу.
3 ответа:
Из того, что я понял, проблема исходит от переменных CSS/пользовательских свойств polyfill.
Он добавляет другой класс,
.product-0
в этом случае, чтобы охватить свойство, где вы используетеvar(--color-gray)
. Вы, вероятно, уже поняли это, но просто указали на это.Вы можете переопределить это с помощью столь же конкретного селектора (нет необходимости использовать
!important
), например#price ::content .price.price span:first-child
(Обратите внимание на дубликат.price
).Я не знаю, можно ли это исправить в полифиле.