|
|
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
apapacy Оно всё конечно замечательно. До тех пор, пока виджеты выражаются чем-нибудь не сложнее input. А после этого - вот очередной виджет, составленный из двух более простых. У него свои состояния, и одновременно с этим он должен навязывать определенные состояния виджетам-составляющим. А еще в разных составных виджетах составляющие должны оформляться по разному. И т.д. На выходе имеем первозданный хаос разнообразных state'ов, в цсс оформленных. Собственно, именно так изначально и было, до того, как взялись за рефакторинг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 01:22 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
Уж куда сложнее инпутов работает. Все что Вы описываете как раз и обеспечивается нормальным использованием CSS. Иначе сообщество w3c предложило бы что-либо другое. Делаете по-другому - пожалуйста. Никто Вам не мешает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 01:43 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
apapacyУж куда сложнее инпутов работает. Все что Вы описываете как раз и обеспечивается нормальным использованием CSS. "Обеспечивается" и "удобно применять" - это слегка разные вещи. Написание абсолютно любых программ обеспечивается знанием машинного кода. Давайте дружно возьмемся... хотя бы за ассемблер? ЗЫ: В последнее время на скульру заметна страшная любовь к передергиваниям. Например, откуда Вы вытащили "работает"? Где-то были утверждения, что "не работает"? Кажется, как раз было обратное. О том, что всё работало (да и сейчас продолжает, только по-другому). Только неудобно для поддержки и доработки было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 02:30 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
The_ShadoW apapacyУж куда сложнее инпутов работает. Все что Вы описываете как раз и обеспечивается нормальным использованием CSS. "Обеспечивается" и "удобно применять" - это слегка разные вещи. ... ЗЫ: В последнее время на скульру заметна страшная любовь к передергиваниям. Например, откуда Вы вытащили "работает"? Где-то были утверждения, что "не работает"? 2 The_ShadoW : и ты еще заикался о логике несколькими постами выше? Осмыслил бы фразы для начала, а потом комментировал... В первой ключевое слово - СЛОЖНЕЕ, а во второй - НОРМАЛЬНЫМ. P.S. достался мне от коллеги один проект, в котором часть стилей в css, а другая часть (для компонентов, формируемых яваскриптом) - в виде констант в скриптах. Да чтоб этому коллеге икалось и не глоталось.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 06:59 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
виджет по сути является законченным логическим элементом, какой бы сложности он ни был. CSS описывает его внешний вид. Если он относится к некоему фреймворку, то он может иметь в себе некие стандартные правила (например, цвет рамки, толщина заголовка, шрифт и т.п.), в остальном же его правила должны быть изолированы, чтобы не пересекаться с остальными и не зависеть от контейнера, в котором виджет находится. Считай правило аналогично программированию на JS - не гадь в общий неймспейс, иначе плохо будет. CSS правила могут так же описывать различные состояния, используя различные селекторы (например, .ok .border { border-color: blue; } , .error .border { border-color: red; }). Лучше всего не увлекаться каскадными правилами и описать определение состояний явно через методы виджета, при этом он сам знает, как изменить свой класс (замечу, класс, а не прописать своему бордюру константу в стиль border-color). Если у тебя составной виджет, то это сильно ничего не меняет - внутри находятся простые виджеты со своими правилами, их контейнер делегирует вызов по смене состояния каждому из составляющих. Когда есть базовый css, плюс каждый виджет имеет свой изолированный css, а код виджета не лезет в оформление, я не вижу проблем с "кашей". Я когда-то пробовал каскадно менять на сложных формах состояние всех элементов. Да, типа круто, приписал контейнеру класс .invalid, все внутри перерисовалось. Но, как всегда, IE все изгадил. Эта падла, особенно шестая версия, не всегда способна перерисовать сложный контейнер целиком, а пляски с бубном, заставляющие его это сделать, только засоряют код. В результате я решил, что лучше не жадничать и попросить каждый входящий в коллекцию виджет изменить свое состояние на необходимое. Это даже более гибкий подход и не надо мусорить css-метками в html. стили должны быть полночтью исключены из JS, JS в идеале не должен знать, как выглядит его элемент (хотя конечно всегда бывают исключения), и в константах могут находиться только имена css классов. Если ты ваяешь html со стилями на яваскрипте, значит ты что-то делаешь не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 09:25 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
illion2 The_ShadoW : и ты еще заикался о логике несколькими постами выше? Осмыслил бы фразы для начала, а потом комментировал... В первой ключевое слово - СЛОЖНЕЕ, а во второй - НОРМАЛЬНЫМ. Ух ты. Никогда не знал, что прилагательные идут за ключевые слова. Конечно, куда там до них существительным и глаголам. зы Ага, кажется я теперь вижу, где мы успели разбежаться в понимании. Так вот, 1) "Внешний вид" весь лежит в цсс; 2) "Примочки" (особенно связанные с кроссбраузерностью) к отдельным состояниям, вида "в случае А под ИЕ выставить overflow:hidden" - лежат в скриптах; 3) Связь элемента со своими правильными стилями (в зависимости от контекста, состояния и т.п.) обеспечивается "типафреймворком" и константами-переменными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 11:10 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
The_ShadoW illion2 The_ShadoW : и ты еще заикался о логике несколькими постами выше? Осмыслил бы фразы для начала, а потом комментировал... В первой ключевое слово - СЛОЖНЕЕ, а во второй - НОРМАЛЬНЫМ. Ух ты. Никогда не знал, что прилагательные идут за ключевые слова. Конечно, куда там до них существительным и глаголам. О, сколько нам открытий чудных… Прими к сведению, что ключевыми словами могут быть даже предлоги. Например, когда принципиальным становится выбор, послать В или НА… ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 11:32 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
AntonariyО, сколько нам открытий чудных… Прими к сведению, что ключевыми словами могут быть даже предлоги. Например, когда принципиальным становится выбор, послать В или НА… Когда Ваше "послать" лишено смысла, можете хоть до позеленения вкладывать глубинный смысл в "В" или "НА". Выглядеть будет одинаково смешно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 12:09 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
The_ShadoW 2) "Примочки" (особенно связанные с кроссбраузерностью) к отдельным состояниям, вида "в случае А под ИЕ выставить overflow:hidden" - лежат в скриптах; от dojo я узнал один интересный подход - при загрузке документа определяется браузер и в body вписывается класс-константа, соответствующая браузеру. Например, <body class="dj_ie6">. Далее все кроссбраузерные "хаки" используются к написанию нужных селекторов, можно забыть о всяких #, _ и >, и отныне считаю этот подход идеальным: Код: plaintext The_ShadoW 3) Связь элемента со своими правильными стилями (в зависимости от контекста, состояния и т.п.) обеспечивается "типафреймворком" и константами-переменными. так стилями или классами? стилям в коде делать нечего, кроме позиционирования и display: none/block; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 13:11 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
* используются = сводятся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 13:12 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
The_ShadoWНаваяйте фреймворк :) У нас вот нечто на эту тему (динамическое управление стилями) постепенно начинает вырисовываться, мб и до фреймворка когда-нибудь дорастет. А всё потому, что при обилии элементов, стилей и js простой css неизбежно становится кашей. Я все же вернусь к Вашему первому постингу в этой теме. >>наваяйте йреймворк Что есть фреймворк? Даже очень хорошие библиотеки называют себя библиотеки. Большинство участников форума имеют на своем счету такие библиотеки. Один участник даже заставлял всех тестировать такую библиотеку. >>У нас вот нечто на эту тему (динамическое управление стилями) постепенно начинает вырисовываться Понты кидаете. Да мы, да у нас. Если хотите конструктива - помогайте программистам в решении их конкретных задач, помогите в изучении материала. Выложите, в конце концов, ваши решения, подходы - обсудим. >>А всё потому, что при обилии элементов, стилей и js простой css неизбежно становится кашей. Тут я процитирую Уайльда. Бывают тети большие, а бывают тети маленькие. У Меньшова в к/ф Ширли-мырли жто звучит так: бавыют бабуси большие, а бывают бабуси маленькие. Бабушка Муся карлик была: вот такая... Я же скажу так. У одних простой css превращается в кашу, у других не превращается. Ну написали Вы компоненты на JavaScript. Ну хорошо. И все пишут. И пользуются. И работает. Зачем же CSS обвинять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 14:55 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
зыА в скриптах этой мерзости делать нечего, потому что если тебе придется переделывать внешний вид, то запаришься искать, где ещё проставляются эти чертовы стили. Вообще-то здесь как раз слегка наоборот. Точечные извращения в стилях, которые обязаны быть привязаны к определенной js-ной логике. Если придется переделывать внешний вид (настолько, что это затронет даже "хаки") - да, придется искать. Однако в случае выноса этого всего в цсс - при изменении логики придется точно так же копать цсс на тему переделывания классов-хаков под новую логику. Выигрыша незаметно. зытак стилями или классами? стилям в коде делать нечего, кроме позиционирования и display: none/block; Классами, классами. Право, успокойтесь уже, никто шрифты и цвета в js-константах не держит (а если кто-то и держит, это его хорошо иллюстрирует). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 15:17 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
apapacyЗачем же CSS обвинять.Затем, что обвинять себя — смелость нужно иметь. По сути. наваяйте фреймворкДа раз полюнуть. Объектные модели броузеров никто не засекречивает. Почему до сих пор не наваян? Потому же, почему не пойман Неуловимый Джо. Другими словами — фреймворк должен выполнять какие-то функции, причем часто используемые и не привязанные к функционалу какого-либо бредопроекта. В этом смысл фреймворков. Вопрос, какие функции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 15:19 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
The_ShadoW Классами, классами. Право, успокойтесь уже, никто шрифты и цвета в js-константах не держит (а если кто-то и держит, это его хорошо иллюстрирует). стили и классы это разные вещи, тебя все поняли именно так, как поняли, что ты держишь стили в коде. Надо правильно оперировать терминами авторОднако в случае выноса этого всего в цсс - при изменении логики придется точно так же копать цсс на тему переделывания классов-хаков под новую логику. Выигрыша незаметно. теперь осталось понять, что же имеется ввиду под "всем" на конкретных примерах. Иметь хаки и основной стиль рядом в css - очень выгодно. Можно и даже нужно иметь по css-ке на каждый виджет, а упаковку оставить сборщику, тогда никакого ужаса не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 15:40 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
зытеперь осталось понять, что же имеется ввиду под "всем" на конкретных примерах. Иметь хаки и основной стиль рядом в css - очень выгодно. Можно и даже нужно иметь по css-ке на каждый виджет, а упаковку оставить сборщику, тогда никакого ужаса не будет. "Это всё" - это как раз хаки и точечные изменения. Теперь про "css на каждый виджет" - каждый виджет уже и так олицетворяется отдельным js (ибо код делить на части приходится начинать много раньше, чем цсс). Какая выгода будет получена от переноса стилевых хаков из js (свой файл на каждый виджет) в цсс (опять же, свой файл на каждый виджет)? Далее, разнос по разным файлам облегчит поиск, но опять же не избавит от необходимости пересматривать все стилевые хаки, привязанные к js-логике, при каждом изменении логики. Когда хаки лежат вместе с js - пересмотр стилей идет заодно с переделкой логики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 18:31 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
The_ShadoWНаваяйте фреймворк :) У нас вот нечто на эту тему (динамическое управление стилями) постепенно начинает вырисовываться, мб и до фреймворка когда-нибудь дорастет. А всё потому, что при обилии элементов, стилей и js простой css неизбежно становится кашей. Я вновь позволю вернуться к Вашему первому постингу. Речь у топикстартера шла о применении JavaScript непосредственно в файлах CSS. Далее речь пошла о том, что такое возможно в NN. Далее зы вспомнил о том незабываемом времени, когда под ишака и капитана нужно было делать принципиально различную верстку. Вопрос знатокам (знатоку): Какое отношение к теме разговора имеет Ваше умозаключение о кашеобразности CSS. 99% постоянных участников форума создают приложения на основе динамического управления стилями. А как они при этом действуют - уже второй вопрос. Тут возникает только одна дилемма. С одной стороны, хочется создавать собственный код, а с другой воспользоваться широкими возможностями имеющихся в наличии в достаточном количестве билиотек сторонних разработчиков. Чем больше программер занимается изучением кода хороших библиотек, спецификаций, тем более просто и естественно он решает все необходимые проблемы. Я вспоминаю свой первый компонент, это был выпадающий список, который через сервлет обращался к базе данных. Он бал решен ужасно. Запросы через iframe (объект XMLHttpRequest был мне незнаком). Обработчики событий и стили определялись прямо в генерируемом HTML-коде. Затем мне попалась книга Паскарелли и Ко Аякс в действии. И знаете ли, мои подходы существенно изменились. разумеется вместо одного сервлета я имею файл js и файл css. Зато код стал прозрачнее, доступнее для рефакторинга. Я уверяю Вас, что мы спорим ни о чем, что хаки в известном смысле должны остаться на совести библиотек поддержки кроссбраузерности, такой как x.js. Аналогичную функциональность обеспечивают и prototype с script.aculo.us, и в разной степени многие другие библиотеки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 19:16 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
The_ShadoW "Это всё" - это как раз хаки и точечные изменения. Теперь про "css на каждый виджет" - каждый виджет уже и так олицетворяется отдельным js (ибо код делить на части приходится начинать много раньше, чем цсс). Какая выгода будет получена от переноса стилевых хаков из js (свой файл на каждый виджет) в цсс (опять же, свой файл на каждый виджет)? Далее, разнос по разным файлам облегчит поиск, но опять же не избавит от необходимости пересматривать все стилевые хаки, привязанные к js-логике, при каждом изменении логики. Когда хаки лежат вместе с js - пересмотр стилей идет заодно с переделкой логики. ещё раз. Хаки и js не имеют ничего общего. "хаки" борятся с несовместимостью рендеринга и лежат исключительно в CSS. "Хаки" в js полностью берет на себя фреймворк или библиотека, которая используется в проекте (например, кроссбраузерно вычислить размер элемента, твой код проблемы браузеров волновать уже не должны). выгода своего css очевидно - то, что нужно для конкретного виджета, лежит рядом с ним и относится исключительно к нему. То, что файлов много - тебя волновать не должно, или ты не слышал про процесс сборки? А может и код виджетов у тебя тоже не собирается и не пакуется в единый файл в процессе билда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 19:50 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
зы[quot The_ShadoW]..."Хаки" в js полностью берет на себя фреймворк или библиотека, которая используется в проекте... Не совсем верно. Я и занимаюсь в основном подхачиванием того, чего уже сделано. Я так предполагаю, хотя могу и ошибаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 20:28 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
зыещё раз. Хаки и js не имеют ничего общего. "хаки" борятся с несовместимостью рендеринга и лежат исключительно в CSS. а) Я так и не услышал, в чем выгода. б) Есть общие случаи несовместимости рендеринга. Их мало и им место в цсс. Есть мелкие частности "в виджете А в ситуации З в браузере У всё криво". Им в цсс не место. зы"Хаки" в js полностью берет на себя фреймворк или библиотека, которая используется в проекте (например, кроссбраузерно вычислить размер элемента, твой код проблемы браузеров волновать уже не должны). Не всегда и не везде. Впрочем, уже сказали об этом. зывыгода своего css очевидно - то, что нужно для конкретного виджета, лежит рядом с ним и относится исключительно к нему. А если стилевые хаки лежат в js - они, представьте себе, тоже относятся исключительно к нему. И лежат прям там же. зыТо, что файлов много - тебя волновать не должно, или ты не слышал про процесс сборки? А может и код виджетов у тебя тоже не собирается и не пакуется в единый файл в процессе билда? Меня и не волнует. Если у Вас опять какие-то ночные фантазии (аналогично вчерашним), и Вы додумываете за собеседника его мысли - лучше идите и додумывайте, только не излагайте их письменно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 20:55 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
apapacyЯ уверяю Вас, что мы спорим ни о чем, что хаки в известном смысле должны остаться на совести библиотек поддержки кроссбраузерности, такой как x.js. Аналогичную функциональность обеспечивают и prototype с script.aculo.us, и в разной степени многие другие библиотеки. Несомненно. Но когда в мои должностные обязанности входит поддержка и развитие веб-морды проекта с четырехлетней историей (и как следствие - на 90% самописка) - от абстрактных умозаключений о том, кто что кому в идеале должен - ни жарко, ни холодно. Если говорить об абстракциях - то как обычно, нужно "всё выбросить и сделать по-новой, максимально правильным путем". Так не бывает, однако же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 21:00 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
The_ShadoW...проекта с четырехлетней историей (и как следствие - на 90% самописка) ... Надо всё-таки переделать (это - серьёзно). Хотя ,в этом смысле я не могу быть "правильным" советчиком, потому что до сих пор работает мой самый первый сайт, написанный двадцать лет назад. Тынц, пардон, не дам - стесняюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 21:28 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
автордвадцать лет назад20???? О_О 1988? педивикияВ 1989 году в Европе, в стенах Европейского совета по ядерным исследованиям (фр. Conseil Européen pour la Recherche Nucléaire, CERN) родилась концепция Всемирной паутины. Её предложил знаменитый британский учёный Тим Бернерс-Ли, он же в течение двух лет разработал протокол HTTP, язык HTML и идентификаторы URI .Что-то не сходится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 22:32 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
The_ShadoW А если стилевые хаки лежат в js - они, представьте себе, тоже относятся исключительно к нему. И лежат прям там же. давай так, хватит абстрактных фраз, приведи ряд конкретных примеров "стилевых хаков в js", а то надоело переливать из пустого в порожнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 23:05 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
ShSerge Не совсем верно. Я и занимаюсь в основном подхачиванием того, чего уже сделано. Я так предполагаю, хотя могу и ошибаться. все зависит от объема реализации фреймворка. Возьми, например, ExtJS, там ты даже думать не будешь, что есть какой-то браузер. Возьми что-нибудь попроще, и конечно же придется самому решать конкретные задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 23:07 |
|
||
|
использование JavaScript в CSS
|
|||
|---|---|---|---|
|
#18+
зыдавай так, хватит абстрактных фраз, приведи ряд конкретных примеров "стилевых хаков в js", а то надоело переливать из пустого в порожнее На 90% это подергивания размеров\положения\границ отдельных элементов (туда же overflow и display). Размеры и положение изначально полностью принадлежат js, а вот границы (padding, margin и outline) собраны в цсс, и "стилевые хаки в js" их в определенные моменты меняют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2008, 08:51 |
|
||
|
|

start [/forum/topic.php?fid=22&startmsg=35555650&tid=1455846]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
173ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 263ms |
| total: | 531ms |

| 0 / 0 |
