Существует ли способ создать Ваш собственный элемент HTML?

Существует ли способ создать Ваш собственный элемент HTML? Я хочу сделать специально разработанный флажок.

Я предполагаю, что такая вещь была бы сделана в JavaScript. Что-то сродни document.createHTMLElement но способность разработать Ваш собственный элемент (и тег).

7
задан Deduplicator 1 February 2015 в 16:28
поделиться

7 ответов

Да, вы можете создавать свои собственные теги. Вы должны создать схему и импортировать ее на свою страницу, а также написать слой JavaScript для преобразования ваших новых тегов в существующие теги HTML.

Примером может служить fbml (Facebook Markup Language), который включает схему и слой JavaScript, написанный Facebook. См. это: Протокол Open Graph.

Используя его, вы можете очень легко сделать кнопку like:

<fb:like href="http://developers.facebook.com/" width="450" height="80"/>
3
ответ дан 6 December 2019 в 08:41
поделиться

Нет, нет.

Элементы HTML ограничены тем, что будет обрабатывать браузер. То есть, если вы создали настраиваемый плагин firefox, а затем заставили его обрабатывать ваш специальный тег, то вы «могли» сделать это для различных интерпретаций «делать это». Список всех элементов для конкретной версии HTML можно найти здесь: http://www.w3.org/TR/html4/index/elements.html

Вероятно, однако, вы на самом деле не хотеть. Если вы хотите «объединить» несколько существующих элементов таким образом, чтобы они работали вместе, вы можете сделать именно этот JavaScript. Например, если вы хотите, чтобы при нажатии флажка отображался где-нибудь раскрывающийся список, заполненный различными элементами, вы можете это сделать.

Возможно, вы захотите подробнее рассказать о том, чего вы действительно хотите достичь, и мы сможем вам помочь.

12
ответ дан 6 December 2019 в 08:41
поделиться

Вам необходимо написать собственный тип документа или / и использовать для этого собственное пространство имен.

http://msdn.microsoft.com/en-us/magazine/cc301515.aspx

2
ответ дан 6 December 2019 в 08:41
поделиться

Нет, нет. Более того, это запрещено в HTML5.

Взгляните на Ample SDK JavaScript-библиотеку GUI, которая позволяет использовать любые пользовательские элементы или пространства имен событий на стороне клиента (таким образом, например, там был реализован XUL) без нарушения правил HTML5.

Посмотрите, например, как реализован элемент масштабирования XUL: http://github.com/clientside/amplesdk/blob/master/ample/languages/xul/elements/scale.js и его Таблица стилей по умолчанию: http://github.com/clientside/amplesdk/blob/master/ample/languages/xul/themes/default/input.css

1
ответ дан 6 December 2019 в 08:41
поделиться

Это правильный вопрос, но я думаю, что название игры со стороны пользовательского интерфейса - прогрессивная разметка. Создайте допустимые теги, совместимые с 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-because-form-validation-is-a-mess /

Итак, мое решение - это не 10-символьное однострочное решение. Однако, если не брать в расчет код JQuery, каждый отдельный тег будет не намного больше, чем:

<input type="checkbox" id="theid">

Итак, хотя будет средний фрагмент кода JQuery, отдельные элементы будут очень маленькими, что важно, если вы повторяете его. 250 раз (программно), как требовал мой последний проект. Его легко кодировать, он хорошо деградирует, хорошо проверяет и, поскольку прогрессивная разметка будет на стороне пользователя, практически не требует затрат на стороне сервера.

Мой текущий проект находится в Symfony - не мой выбор - который использует сложные, громоздкие серверные теги для рендеринга элементов формы, проверки, выполнения javascript onclick, стиля и т. Д. Это похоже на то, о чем вы просили сначала .... и позвольте мне сказать вам, что это КЛАНКИ. Один тег для вызова ссылки может состоять из 10 строк кода! После того, как меня заставили это сделать, я не фанат.

1
ответ дан 6 December 2019 в 08:41
поделиться

Хм. Первая мысль - создать собственный элемент и преобразовать его с помощью XSLT в валидный HTML.

0
ответ дан 6 December 2019 в 08:41
поделиться

Самый простой способ - написать плагин, скажем, на Jquery (или Dojo, MooTools, выбирайте сами). В случае jQuery вы можете найти некоторые плагины здесь http://plugins.jquery.com/ и использовать их в качестве образца.

2
ответ дан 6 December 2019 в 08:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: