Как оградить HTML тег от воздействия css стилизации?

Недавно столкнулся с этим вопросом. Пример: мой js скрипт вставляет в чужой(мне не подвластный) сайт div, этому диву я задаю свою стилизацию, но сайт её меняет.
Перечислить все css стили для этого div-а с !important не лучший подход, так как вставляются и другие теги кроме div-а.
Что делать?
  • Вопрос задан
  • 5842 просмотра
Пригласить эксперта
Ответы на вопрос 10
MuXaJIbI4
@MuXaJIbI4
может тогда проще iframe вставлять?
Ответ написан
@tanz_sullamora
Пропишите inline-стили. Т.е. <div style="color:red">...</div>, они перебьют все остальные
Ответ написан
spmbt
@spmbt
Назвать все дивы и прочие общие имена тегов своими именами, которым прописать необходимые свои стили и стили оригинальных тегов по умолчанию. Например, DIV заменить на MYAPPDIV, SPAN на MYAPPSPAN и т.д.
Ответ написан
Комментировать
@rozhik
Создайте innerHTML ифрейма а не через src. Точно так-же как Вы можете создавать див в родителе — также Вы можете сделать и дом нового фрейма. Обойти через CSS не получится, но это можно обойти через javascript.
Ответ написан
Комментировать
@exdeniz
Генерируйте название селекторов рандомно.
Ответ написан
Комментировать
sHinE
@sHinE
веб-разработчик, php/js/mysql и сопутствующее
Сейчас не найду, но где-то читал аналогичный вопрос — там автор решил применить модель BEM для стилизации своего html-кода на чужом сайте, чтобы не пересекаться по стилям. Подробности, к сожалению, не запомнил, так как не верстальщик.
От себя — насколько я в курсе, к элементу применяется стиль от самого специфичного селектора. Может быть вам просто использовать какие-то уникальные id/class, чтобы ваши стили всегда были на элементе?
Ответ написан
PopeyetheSailor
@PopeyetheSailor
Я все никак не соберусь поближе ознакомиться, но мне кажется что Shadow DOM, то что вам нужно.
Ответ написан
AlexPTS
@AlexPTS
Full stack веб разработчик
Как вариант можно использовать свои произвольные теги (HTML5), для них просто не будет стилей, разве что только из плохих ресетов с селектором *. Такая штука вроде используется в Яндексе при интеграции их выдачи встраиваемой в сайт, чтобы их выдача не искажалась стилями сайта случайно.
Ответ написан
Комментировать
Копайте в сторону shadow DOM, по идее полифилл от polymer должен поддерживать ie9. точно поддерживает ie10
Ответ написан
Комментировать

А если попробовать вот таким способом:


<div class="style">
...
</div>
а в css-е прописать:

div[class=style]{
...
}

Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы