Это правильный вопрос, но я думаю, что название игры со стороны пользовательского интерфейса - прогрессивная разметка.Создайте допустимые w3-совместимые теги и затем стилизуйте их соответствующим образом с помощью JavaScript (в моем случае Jquery или Dojo) и CSS.Хорошо написанный блок CSS можно многократно использовать (мой любимый случай - Jquery UI с themeroller) и стилизовать практически любой элемент на странице, добавив всего одно или два слова к объявлению класса.
Вот несколько хороших Jquery / Javascript / CSS решений, которые относительно просты:
http://www.filamentgroup.com/examples/customInput/ http://aaronweyenberg.com/90/pretty-checkboxes-with-jquery http://www.protofunc.com/scripts/jquery/checkbox-radiobutton/
Вот спецификации для предстоящего (имногообещающее) Обновление JqueryUI для элементов формы: http://wiki.jqueryui.com/Checkbox
Если вам нужно проверить ввод, это простой способ получить встроенную проверку с помощью одного тега класса или идентификатора: http://www.position -absolute.com / article / jquery-form-validator-потому что-form-validation-is-a-mess /
Хорошо, так что мое решение - это не 10-символьное, однострочное решение.Тем не менее, если не учитывать код Jquery, каждый отдельный тег не будет намного больше, чем:
<input type="checkbox" id="theid">
Так что, хотя будет средний кусок кода Jquery, отдельные элементы будут очень маленькими, что важноесли вы повторяете это 250 раз (программно), как того требует мой последний проект.Легко кодировать, хорошо деградирует, хорошо проверяет, и поскольку прогрессивная разметка будет на стороне пользователя, практически не будет стоить на стороне сервера.
Мой текущий проект в Symfony - не мой выбор -который использует сложные, громоздкие серверные теги для рендеринга элементов формы, проверки, выполнения javascript onclick, style и т. д. Это похоже на то, о чем вы сначала просили ... и позвольте мне сказать, что это CLUNKY.Один тег для вызова ссылки может быть длиной в 10 строк кода!Будучи вынужденным сделать это, я не фанат.