Использование jQuery для CSS против таблицы стилей

#javascript #jquery #css

#javascript #jquery #css

Вопрос:

Поскольку мне нравится хранить весь исходный код в одном файле (для каждого класса), я решил добавить весь стиль и CSS, используя объекты jQuery, то есть:

 jquery : $('<div/>', 
         {
           id:'Object',
           css:{
             height:'100%',
             width:'69%',
             color:'white',
             fontWeight:'bold',
             textAlign:'center',       
             backgroundColor:'#02297f',
             marginLeft:'.5%',
             'float':'left',
             overflow:'auto',
             borderRadius:'5px'
           },                 
           html : 'My JQuery Object'
         }),
  

Теперь я знаю, что, вероятно, это повлияет на производительность, но мой вопрос в том, насколько сильно? Кто-нибудь еще делает это таким образом? Я упускаю из виду потенциальную проблему?

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

РЕДАКТИРОВАТЬ: это для приложения Javascript, а не для веб-страницы. Таким образом, отключение Javascript в любом случае приведет к удалению веб-страницы.

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

1. Извините, я не знал об этом. :/

Ответ №1:

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

Кроме того, вы вообще не получаете никакого стиля при запуске браузера, в котором отключен javascript.

Но, прежде всего, это плохая идея. CSS предназначен для стилизации, для внешнего вида вашей страницы. HTML предназначен для структуры, а Javascript — для логики, интерактивности. Я думаю, вам вообще не следует использовать метод .css. Если вам нужно переключать стили в Javascript, используйте вместо этого классы, которые затем можно стилизовать с помощью таблиц стилей.

Но этот ваш метод делает еще один шаг вперед. Я думаю, что это даже хуже, чем помещать все css в атрибуты встроенного стиля. Я надеюсь, что вы просто задаете этот вопрос, чтобы посмотреть, как люди реагируют. Это не должно быть серьезно. :s

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

1. Почему атрибуты, являющиеся частью объекта, не должны оставаться с объектом? Я не обязательно не согласен, но зачем все разделять?

2. Ну, есть исключения, и я вижу в вашей последующей правке, что это веб-приложение, а не веб-сайт (хотя между ними тонкая грань). Но обычно проще сохранить стиль отдельно, чтобы сделать код более удобным для обслуживания. Даже когда вы создаете динамические объекты в своем коде, может быть проще добавить класс, чем определенный стиль. Затем вы можете точно настроить стиль в файле css, не беспокоясь о том, где он используется. Конечно, в действительно динамичном приложении, особенно с анимацией, отдельные таблицы стилей могут не дать вам полного диапазона необходимой гибкости.

Ответ №2:

Вы делаете это неправильно.

CSS должен оставаться в *.css файлах, а Javascript — в *.js файлах.

Существует такая вещь, известная как 3 слоя Сети:

  • содержимое (HTML)
  • презентация ( CSS)
  • поведение ( JS)

Прежде всего, да, если вы используете JS для генерации html и его стилизации, это окажет огромное влияние на производительность. Но даже игнорируя это: вы бы сделали код практически не поддерживаемым.

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

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

1. OOCSS — это не более чем модное словечко, его использование приведет к значительным вредным последствиям.

2. @c69, мне не удалось столкнуться с какими-либо «вредными последствиями», и с каких пор это стало модным словом? В 2009-м это было правило «свести специфику к минимуму».

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

Ответ №3:

Это УЖАСНАЯ ИДЕЯ! Используйте вместо http://xcss.antpaw.org /

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

1. Почему это ужасная идея в контексте веб-приложения (а не веб-страницы только для чтения)?

Ответ №4:

Я согласен с тем, как вы это делаете. По сути, я использую его сам. Я разрабатываю игру html5, и в этом контексте то, что вы делаете, имеет смысл. В играх пользовательские и системные события постоянно меняют экран. Вы можете реально справиться с этим только с помощью своевременной укладки. Поэтому использование .css() — отличный способ сделать это. Я думаю, что в игре спрайты настолько различны, что им требуется собственный объект стиля.