Это ОК, чтобы открыть and elements in this way?

#javascript #css

#javascript #css

Вопрос:

Это хорошая практика CSS?

<style id="magic"> — чтобы я мог, если захочу, добавить свойства CSS с помощью JavaScript (имеется в виду редактирование <style> элемента из JavaScript), чтобы влиять на элементы в документе, не заставляя скрипт проходить через каждый из соответствующих элементов.

<script style="display: block; white-space: pre;"> Чтобы я мог делиться сценариями внутри сообщения в блоге вместе с демонстрацией, не заставляя меня писать версию для сообщения в блоге и другую для демонстрации.

(Это просто гипотетически)

Комментарии:

1. У меня все хорошо. Можете ли вы отредактировать свой вопрос, чтобы сделать его более понятным? Это не особенно очевидно, что вы хотите сделать, а также является довольно широким.

2. Можете ли вы привести конкретный пример того, что, как вам интересно, является хорошей практикой?

3. Попробуйте это на этой странице: javascript:$(‘script’).css (‘display’, ‘block’);

4. Хорошо, я наконец понял вопрос … и я бы сказал, что это определенно не рекомендуемая практика. Я бы предложил создать <div> и скопировать innerHTML <script> , почему? вероятно, просто из соображений безопасности, хотя это не совсем зло или что-то в этом роде.

5. Я бы не сказал, что это хорошо или плохо, это часть w3c-DOM, так что просто делайте это, если хотите.

Ответ №1:

В вашем первом случае (изменение определений стилей в <style> элементе с помощью Javascript) вы можете столкнуться с парой дорожных неровностей:

  1. Разные браузеры справляются с этим по-разному. В IE (по крайней мере, в более старых версиях) вам придется изменить .styleSheet.cssText свойство элемента style, а в других браузерах вам просто нужно добавить к нему текстовые узлы в качестве дочерних элементов (обратите внимание, возможно, что .innerHTML работает универсально; я просто никогда этим не пользовался).
  2. Добавление новых правил стиля проще, чем замена существующих, особенно когда вы обрабатываете правила как просто текст.
  3. Браузеры (могут) иметь ограничение на количество правил стиля на странице. Хотя это будет исчисляться тысячами, вы можете достичь ограничений, если настроите правила стиля в цикле (без какой-либо очистки старых).

В остальном, действуйте. Вероятно, это хорошая альтернатива настройке встроенных стилей.


В вашем втором случае, извините, но это просто невозможно (или, если это так, это определенно не рекомендуется). Вы не можете отобразить текстовое содержимое <script> элемента в виде текста с помощью CSS, а также выполнить его как Javascript. Для начала анализаторы HTML переключаются в другой режим, когда они анализируют содержимое <script> элемента.

Предпочтительный способ показа исходного кода Javascript вместе с демонстрацией — это иметь отдельную версию кода, удобную для отображения (например, в <pre> элементе).