CSS не основан на наследовании, а скорее "каскадный" (это первый C в "CSS"). Понимая это, вы можете обойти описанную проблему несколькими способами:
1) Добавьте встроенные стили к вашему элементу через скрипт. Встроенные стили имеют приоритет над правилами CSS, будь то из классов, идентификаторов или элементов.
2) Добавьте свой собственный файл CSS программно. CSS-каскады в том порядке, в котором правило появляется в документе. Вы можете написать элемент CSS link
в нижней части страницы, чтобы включить CSS-правила вашего плагина. Поскольку они предположительно ниже или «позже» в документе, чем CSS сайта, ваши правила будут иметь приоритет.
3) Программно напишите тег style
внизу документа. Та же концепция, что и у # 2, но без внешнего файла.
Я бы лично склонялся к # 1. Если вы хотите, чтобы ваш плагин был непротиворечивым по внешнему виду, независимо от того, что еще происходит, независимо от того, на каком сайте он используется, единственный способ убедиться в этом - применить ваши стили в стиле.
Тем не менее, есть смысл в настройке интерфейса вашего плагина с помощью CSS-классов. Может быть, вы пытаетесь отобрать что-то, чего не должны делать. Например, если весь сайт использует шрифт Serif, и вы используете принудительный шрифт Sans в пользовательском интерфейсе вашего плагина, внешний вид вашего плагина теперь расходится с сайтом. Это может нарушить условия сделки, когда кто-то рассматривает ваш плагин ... настройка - это хорошая вещь в мире многократно используемого кода, и CSS - способ сделать это возможным.