#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() — отличный способ сделать это. Я думаю, что в игре спрайты настолько различны, что им требуется собственный объект стиля.