SlideShare a Scribd company logo
1 of 23
Download to read offline
Денис Завгородний,
веб-технолог, Digital-агентство AlterEGO
1997 год HTML 3.2
1999 год XHTML 4.01
<form>
1
2
3
Что делать?
4
● Ничего
● Ничего и ругать дизайнеров
● Стилизовать формы
5
6
CSS
● "Природно" для браузера
● Чистый и семантичный html
● Не требует js
● Стилизируется не все
● Не кроссбраузерно
+ -
7
JS + CSS
● Зоопарк браузеров
● Прикладной интерфейс
● Широкие возможности
● Много кода
● "Грязный" HTML
● Требуется поддержка js
+ -
8
А что с JS?
● Vanilla JS
● MooTools
● Prototype
● jQuery
...
● jNice
● Nice Forms
● Uniform
● jQuery checkbox
● Select Box Factory
● ikSelect
...
9
Как это работает?
● DOM элементы формы - "модель" данных
● Вспомогательный HTML - отображение
● Пользователь взаимодействует с
вспомогательными HTML элементами
● JS связующее звено
Требования
● Естественное поведение
● Максимальное покрытие зоопарка браузеров
● Гибкая настройка внешнего вида
● Стилизация мелочей
● Документация
● Единый инструмент (все в одном)
● Плюшки
10
11
И?
12
И...
● Расчитаны лишь на современные браузеры
● Стилизируют только определенные элементы
● Нет стилизации скрола для select
● При динамическом обновлении контента
"падают"
● Заброшены
● И вообще...
13
14
jClever умеет
● input[type=text]
● input[type=checkbox]
● select
● multyselect
● input[type=button]
● input[type=radio]
● input[type=file]
● texterea
● валидация форм
● темы оформления
● слежение за DOM
● API
15
Темы оформления
CSS темы в отдельных директориях
<link rel="stylesheet" type="text/css"
href="jCleverTemplate/alice/css/jClever.css" />
jCleverTemplate
alice
template 1
template ...
template n
images
css
16
Валидация и placeholder
Предустановленные типы валидации:
● isNumeric
● isString
● isAnyText
● isEmail
● isSiteURL
+ регулярные выражения
Пользовательские html шаблоны ошибок
17
Слежение за DOM
● Поддержка AJAX и обновления страницы
● Собственное событие обновления DOM
onDomChange
● Использование событий: DOMContentLoaded и др.
● Кроссбраузерная реализация
● Оптимизация скорости работы
18
Простая иницализация
jQuery(_form-selector_).jClever({
autoTracking: true,
autoInit: true
});
Возможность использования в одностраничных
приложениях и сайтах с изменением контента без
перезагрузки страницы
19
API
● Обновление формы (refresh)
● Включение/отключение элементов форм
● Управление select (раскрытие, выбор активного и т.д.)
● Изменение select (option)
● Управление checkbox и radio
● Добавление новых элементов к форме
● Метод destroy
...
20
А чем лучше?
● Свое, родное
● Поддержка AJAX и обновления DOM
● Стилизация раскрытого select
● Возможность стилизации scroll, отказ от системного
● Работает во всех поддерживаемых нами браузерах
● Единый инструмент с поддержкой и развитием
21
22
https://github.com/denis-zavgorodny/jClever
Спасибо :)
Денис Завгородний, AlterEGO
https://twitter.com/DenisZavgorodny

More Related Content

What's hot

Павел Юрийчук - Разработка приложений под мобильные браузеры
Павел Юрийчук - Разработка приложений под мобильные браузерыПавел Юрийчук - Разработка приложений под мобильные браузеры
Павел Юрийчук - Разработка приложений под мобильные браузерыUA Mobile
 
SQL. Django, начало
SQL. Django, началоSQL. Django, начало
SQL. Django, началоpelid
 
Инструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важныИнструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важныCodeFest
 
Изоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесьИзоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесьCodeFest
 
Olesya Prokopenko. FlexBox. Future of the slicing
Olesya Prokopenko. FlexBox. Future of the slicingOlesya Prokopenko. FlexBox. Future of the slicing
Olesya Prokopenko. FlexBox. Future of the slicingDrupalSib
 
Александр Кашеверов - Коротко про WEB
Александр Кашеверов - Коротко про WEBАлександр Кашеверов - Коротко про WEB
Александр Кашеверов - Коротко про WEBDataArt
 
#4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов
#4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов#4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов
#4 "Особенности разработки кросс-браузерных расширений" Сергей РашитовJSib
 
Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)
Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)
Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)Ontico
 
Оживление сайтов
Оживление сайтовОживление сайтов
Оживление сайтовMageCloud
 
Разработка небольшого проекта c BEM и node.js — Сергей Пузанков
Разработка небольшого проекта c BEM и node.js — Сергей ПузанковРазработка небольшого проекта c BEM и node.js — Сергей Пузанков
Разработка небольшого проекта c BEM и node.js — Сергей ПузанковYandex
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Ontico
 
HTML. Быстрое погружение. Влад Савицкий
HTML. Быстрое погружение. Влад СавицкийHTML. Быстрое погружение. Влад Савицкий
HTML. Быстрое погружение. Влад СавицкийVlad Savitsky
 
Компонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективноКомпонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективноRoman Dvornov
 
Mobile Web Apps development essentials
Mobile Web Apps development essentialsMobile Web Apps development essentials
Mobile Web Apps development essentialsPavlo Iuriichuk
 
Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1dima_kuzovlev
 

What's hot (19)

Павел Юрийчук - Разработка приложений под мобильные браузеры
Павел Юрийчук - Разработка приложений под мобильные браузерыПавел Юрийчук - Разработка приложений под мобильные браузеры
Павел Юрийчук - Разработка приложений под мобильные браузеры
 
SQL. Django, начало
SQL. Django, началоSQL. Django, начало
SQL. Django, начало
 
Инструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важныИнструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важны
 
knockout.js
knockout.jsknockout.js
knockout.js
 
Изоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесьИзоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесь
 
Olesya Prokopenko. FlexBox. Future of the slicing
Olesya Prokopenko. FlexBox. Future of the slicingOlesya Prokopenko. FlexBox. Future of the slicing
Olesya Prokopenko. FlexBox. Future of the slicing
 
Александр Кашеверов - Коротко про WEB
Александр Кашеверов - Коротко про WEBАлександр Кашеверов - Коротко про WEB
Александр Кашеверов - Коротко про WEB
 
#4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов
#4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов#4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов
#4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов
 
Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)
Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)
Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)
 
Оживление сайтов
Оживление сайтовОживление сайтов
Оживление сайтов
 
Разработка небольшого проекта c BEM и node.js — Сергей Пузанков
Разработка небольшого проекта c BEM и node.js — Сергей ПузанковРазработка небольшого проекта c BEM и node.js — Сергей Пузанков
Разработка небольшого проекта c BEM и node.js — Сергей Пузанков
 
Суперсилы Chrome developer tools
Суперсилы Chrome developer toolsСуперсилы Chrome developer tools
Суперсилы Chrome developer tools
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
 
Node
NodeNode
Node
 
HTML. Быстрое погружение. Влад Савицкий
HTML. Быстрое погружение. Влад СавицкийHTML. Быстрое погружение. Влад Савицкий
HTML. Быстрое погружение. Влад Савицкий
 
AngularJS
AngularJSAngularJS
AngularJS
 
Компонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективноКомпонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективно
 
Mobile Web Apps development essentials
Mobile Web Apps development essentialsMobile Web Apps development essentials
Mobile Web Apps development essentials
 
Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1
 

Similar to Сделай дизайнеру приятно: Красивые веб-формы

Быстро о быстром
Быстро о быстромБыстро о быстром
Быстро о быстромRoman Dvornov
 
DOM-шаблонизаторы – не только "быстро"
DOM-шаблонизаторы – не только "быстро"DOM-шаблонизаторы – не только "быстро"
DOM-шаблонизаторы – не только "быстро"Roman Dvornov
 
Tizen Mobile Application Lifecycle by Kirill Danilov
Tizen Mobile Application Lifecycle by Kirill DanilovTizen Mobile Application Lifecycle by Kirill Danilov
Tizen Mobile Application Lifecycle by Kirill DanilovMoscowJS
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоStanfy
 
Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)
Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)
Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)Ontico
 
django cheBit'11
django cheBit'11django cheBit'11
django cheBit'11dva
 
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TKConf
 
Знакомство с Tizen
Знакомство с TizenЗнакомство с Tizen
Знакомство с TizenIurii Ageev
 
Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...
Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...
Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...Ontico
 
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)Ontico
 
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDKrivoy Rog IT Community
 
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
Компонентная разработка на Stylus, Jade, Typescript - Леонид ШирмановКомпонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
Компонентная разработка на Stylus, Jade, Typescript - Леонид ШирмановMoscowJS
 
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter..."Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...MoscowJS
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012InTRUEdeR
 
Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5DevDay
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только одинHappyDev
 
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...e-Legion
 

Similar to Сделай дизайнеру приятно: Красивые веб-формы (20)

Быстро о быстром
Быстро о быстромБыстро о быстром
Быстро о быстром
 
DOM-шаблонизаторы – не только "быстро"
DOM-шаблонизаторы – не только "быстро"DOM-шаблонизаторы – не только "быстро"
DOM-шаблонизаторы – не только "быстро"
 
Tizen Mobile Application Lifecycle by Kirill Danilov
Tizen Mobile Application Lifecycle by Kirill DanilovTizen Mobile Application Lifecycle by Kirill Danilov
Tizen Mobile Application Lifecycle by Kirill Danilov
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел Тайкало
 
Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)
Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)
Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)
 
django cheBit'11
django cheBit'11django cheBit'11
django cheBit'11
 
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
 
Знакомство с Tizen
Знакомство с TizenЗнакомство с Tizen
Знакомство с Tizen
 
A.pleshkov
A.pleshkovA.pleshkov
A.pleshkov
 
Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...
Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...
Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...
 
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
 
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
 
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
Компонентная разработка на Stylus, Jade, Typescript - Леонид ШирмановКомпонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
 
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter..."Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
 
Databases on Client Side
Databases on Client SideDatabases on Client Side
Databases on Client Side
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012
 
Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
 
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
 

Сделай дизайнеру приятно: Красивые веб-формы

  • 2. 1997 год HTML 3.2 1999 год XHTML 4.01 <form> 1
  • 3. 2
  • 4. 3
  • 6. ● Ничего ● Ничего и ругать дизайнеров ● Стилизовать формы 5
  • 7. 6 CSS ● "Природно" для браузера ● Чистый и семантичный html ● Не требует js ● Стилизируется не все ● Не кроссбраузерно + -
  • 8. 7 JS + CSS ● Зоопарк браузеров ● Прикладной интерфейс ● Широкие возможности ● Много кода ● "Грязный" HTML ● Требуется поддержка js + -
  • 9. 8 А что с JS? ● Vanilla JS ● MooTools ● Prototype ● jQuery ... ● jNice ● Nice Forms ● Uniform ● jQuery checkbox ● Select Box Factory ● ikSelect ...
  • 10. 9 Как это работает? ● DOM элементы формы - "модель" данных ● Вспомогательный HTML - отображение ● Пользователь взаимодействует с вспомогательными HTML элементами ● JS связующее звено
  • 11. Требования ● Естественное поведение ● Максимальное покрытие зоопарка браузеров ● Гибкая настройка внешнего вида ● Стилизация мелочей ● Документация ● Единый инструмент (все в одном) ● Плюшки 10
  • 13. 12 И... ● Расчитаны лишь на современные браузеры ● Стилизируют только определенные элементы ● Нет стилизации скрола для select ● При динамическом обновлении контента "падают" ● Заброшены ● И вообще...
  • 14. 13
  • 15. 14 jClever умеет ● input[type=text] ● input[type=checkbox] ● select ● multyselect ● input[type=button] ● input[type=radio] ● input[type=file] ● texterea ● валидация форм ● темы оформления ● слежение за DOM ● API
  • 16. 15 Темы оформления CSS темы в отдельных директориях <link rel="stylesheet" type="text/css" href="jCleverTemplate/alice/css/jClever.css" /> jCleverTemplate alice template 1 template ... template n images css
  • 17. 16 Валидация и placeholder Предустановленные типы валидации: ● isNumeric ● isString ● isAnyText ● isEmail ● isSiteURL + регулярные выражения Пользовательские html шаблоны ошибок
  • 18. 17 Слежение за DOM ● Поддержка AJAX и обновления страницы ● Собственное событие обновления DOM onDomChange ● Использование событий: DOMContentLoaded и др. ● Кроссбраузерная реализация ● Оптимизация скорости работы
  • 19. 18 Простая иницализация jQuery(_form-selector_).jClever({ autoTracking: true, autoInit: true }); Возможность использования в одностраничных приложениях и сайтах с изменением контента без перезагрузки страницы
  • 20. 19 API ● Обновление формы (refresh) ● Включение/отключение элементов форм ● Управление select (раскрытие, выбор активного и т.д.) ● Изменение select (option) ● Управление checkbox и radio ● Добавление новых элементов к форме ● Метод destroy ...
  • 21. 20 А чем лучше? ● Свое, родное ● Поддержка AJAX и обновления DOM ● Стилизация раскрытого select ● Возможность стилизации scroll, отказ от системного ● Работает во всех поддерживаемых нами браузерах ● Единый инструмент с поддержкой и развитием
  • 22. 21