Удалить правила стиля CSS из одного HTML-элемента программно

0

Я хочу добавить некоторые элементы HTML в свой документ, который вообще не имеет стиля. Но я должен заверить, что эти элементы не будут выглядеть иначе, независимо от проекта, веб-страницы или чего-либо еще. Эти элементы будут вставлены на страницу Javascript и будут SPAN.

Моя идея состоит в том, чтобы добавить SPAN для создания фрагментов текста в документе. Но некоторый стиль, возможно, был добавлен в элементы SPAN раньше, и это изменит результат, который я ожидаю.

Поэтому позвольте предположить, что я пишу виджет, и любой из вас может использовать его на ваших собственных веб-страницах. Вот почему я не могу сильно изменить стиль элементов, например, напрямую изменить таблицы стилей. Решение должно быть достигнуто с помощью Javascript. JQuery не нужен.

<head>
   <style>
     span{
       font-weight: bold;
       /*anything else goes below*/
     }
   </style>
</head>

<body>
   <span class='a_regular_span'>This text must be bold and anything else</span>
   <span>This text must have only the CSS rules I applied by Javascript, and must not inherit the rules for all SPANs in the page</span>
</body>

Есть идеи?

Теги:

3 ответа

2

Поэтому позвольте предположить, что я пишу виджет, и любой из вас может использовать его на ваших собственных веб-страницах. Вот почему я не могу многое изменить стиль элементов напрямую

Вы можете использовать элемент style с атрибутом scoped. Таким образом вы можете стилизовать только свои элементы, не затрагивая другие части страницы.

Но имейте в виду, что старые браузеры не поддерживают его.

И если вы не хотите, чтобы стили страниц влияли на ваши элементы, см. Раздел Как я могу предотвратить влияние CSS на определенный элемент?

  • 0
    В то время как метод scoped может игнорировать другие стили CSS. Вставка диапазона в неправильном месте испортит стиль другого диапазона.
  • 0
    да, я думаю, что мне понадобится более общее решение, но я понял из прочтения описания области scoped , что другие элементы не наследуют эти правила. Мне нужны другие правила, чтобы не наследоваться конкретными элементами.
Показать ещё 3 комментария
2

Если вы действительно хотите отделить стиль своих элементов от элементов других элементов на странице, вы можете использовать специальный тег для этого.

Например, вместо использования span вы можете использовать custompan и стилизовать эти элементы любым способом.

<head>
   <style>
     span{
       font-weight: bold;
       /*anything else goes below*/
     }
   </style>
</head>

<body>
   <span class='a_regular_span'>This text must be bold and anything else</span>
   <customspan>This text must have only the CSS rules I applied by Javascript, and must not inherit the rules for all SPANs in the page</customspan>
</body>
  • 0
    хммм звучит хорошо для меня. код не будет действительным, верно ?! но это хороший шаг
  • 0
    Тег недействителен, но все еще отображается браузерами. Если вы настаиваете на использовании тега span, то не существует идеального решения. В пределах одного сайта / домена любой общий тег все еще может быть изменен с помощью javascript, даже если он находится внутри iframe
0

можно попробовать?

 <style>
      span{
        font-weight: bold;
        /*anything else goes below*/
      }    .a_regular_span span{ font-weight: normal;
        /*anything else goes below*/
     }

 </style>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню