чистый CSS против стиля дом - PullRequest
1 голос
/ 22 июня 2011

Я постепенно осознал, что многое из того, что я делаю с помощью внешнего или встроенного css, также можно сделать, манипулируя DOM напрямую.Я также слышал, что загрузка страниц происходит быстрее.С другой стороны, если это будет сделано, отсутствие поддержки javascript может сделать мое приложение бесполезным (или, по крайней мере, очень уродливым).

Есть мысли на эту тему?

Ответы [ 3 ]

3 голосов
/ 22 июня 2011

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

Как вы сказали, если у пользователя отключен JS, страница не будет корректно оформляться.

ВнешнийФайлы CSS могут кэшироваться, что позволяет сэкономить пропускную способность, время загрузки и т. Д.

Изменение некоторых значений в файле CSS лучше, чем их поиск в скрипте, что повышает удобство сопровождения.

ЕслиВы хотите динамически изменять стили элементов, просто измените их класс с помощью JS, а затем создайте разные стили в своем файле CSS для каждого класса, таким образом, вы используете JS только для изменения классов элементов, вместо того, чтобы писать весь код CSS в сценарии.

РЕДАКТИРОВАТЬ

Я забыл упомянуть, что наличие CSS в верхней части загрузки страницы (раздел заголовка) может отображать страницу как загруженный контент, уже стилизованный, и так как это лучшеиметь скрипты в конце загрузки страницы, если вы добавите стилизацию в свои скрипты, вы потеряете возможность правильно отобразить страницу с самого начала, что, я думаю,это плохо.

2 голосов
/ 22 июня 2011

CSS - лучший способ стилизовать (X) HTML-документ.

Даже если вам нужно стилизовать документ с помощью необработанного JavaScript или DOM или какой-либо инфраструктуры, такой как jQuery, это будет означать, что вы 'возвращая значения правилам CSS.

Правило должно быть:

  • Используйте чистый CSS, когда вы можете стилизовать предсказуемый документ - также вы можете улучшить свой CSSи использовать селекторы CSS для обобщенных или сложных сценариев -.

  • Использование JavaScript / DOM или сред, если документ или его части непредсказуемы или создаются на летуи вы применяете специальные эффекты, такие как фейдеры или любые другие - на самом деле , в CSS 3.0 есть переходы, поэтому можно многое сделать без JavaScript -.

В конце концов, подумайте, как проще работать с CSS, и какое излишнее использование вместо этого с помощью JavaScript, и помните о его минусах (очень важный момент: совместимость и производительность браузера).

Чем больше CSSвы используете,более стандартизированный, кросс-браузерный, эффективный и обслуживаемый веб.

1 голос
/ 22 июня 2011

Если вы под DOM-манипуляциями имеете в виду изменение свойства стиля элементов с помощью сценариев, то, конечно, это можно сделать, и это, вероятно, сработает даже в браузерах, хотя я понятия не имею, почему вы хотите это сделать.

Обратите внимание, что я сказал "в браузерах": Internet Explorer (в отличие от браузера) имеет очень медленный DOM и испытывает недостаток в полезных методах, которые различные библиотеки JS используют для выбора элементов, что означает, что для многих селекторов они имеют пройти тонну элементов, чтобы проверить, соответствуют ли они выбранному селектору.

Выбор и обход элементов в IE действительно, очень дорогой.

Так что ваше предложение, если я правильно понял, уродливо, непрактично и совершенно непригодно для IE. Но теперь мне любопытно: почему вы хотите делать все стили, используя JS? В чем проблема с файлами CSS (или встроенными стилями?)

...