有没有办法创建自己的HTML元素?我想制作一个特别设计的复选框。
我想这样的事情会在JavaScript中完成。类似于document.createHTMLElement
的东西,但能够设计自己的元素(和标签)。
答案 0 :(得分:12)
不,没有。
HTML元素仅限于浏览器处理的内容。也就是说,如果你创建了一个自定义的firefox插件,然后让它处理你的特殊标签,那么你可以“做”它,对“做它”的不同解释。可以在此处找到特定HTML版本的所有元素的列表:http://www.w3.org/TR/html4/index/elements.html
但是,你可能并不想。如果你想以一起运行的方式“组合”几个现有元素,那么你就可以做到这一点。例如,如果你想要一个复选框,当点击时,在某个地方显示一个下拉列表,填充各种东西,你可以这样做。
也许您可能想详细说明您实际想要达到的目标,我们可以进一步提供帮助。
答案 1 :(得分:3)
是的,您可以创建自己的标签。您必须创建一个Schema并将其导入到您的页面上,然后编写一个JavaScript层以将新标记转换为现有的HTML标记。
示例是fbml
(Facebook Markup Language),其中包括Facebook编写的架构和JavaScript层。请参阅:Open Graph protocol。
使用它你可以很容易地制作一个类似的按钮:
<fb:like href="http://developers.facebook.com/" width="450" height="80"/>
答案 2 :(得分:2)
最简单的方法可能就是在Jquery(或Dojo,MooTools,选择一个)中编写一个插件。 在jQuery的情况下,您可以在http://plugins.jquery.com/找到一些插件,并将它们用作示例。
答案 3 :(得分:2)
您需要编写自己的doctype或/并使用自己的命名空间来执行此操作。
答案 4 :(得分:1)
不,没有。此外,它不允许在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
答案 5 :(得分:1)
这是一个有效的问题,但我认为UI方面的游戏名称是渐进式标记。构建有效的w3兼容标签,然后使用javascript(在我的情况下为Jquery或Dojo)和CSS适当地设置它们。一个精心编写的CSS块可以反复重复使用(我最喜欢的案例是带有themeroller的Jquery UI),并且几乎可以在页面上添加任何元素,只需要在类声明中添加一个或两个单词。
这里有一些比较简单的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
如果您需要验证输入,这是使用单个类或ID标记进行内联验证的简便方法:http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/
好的,所以我的解决方案不是10个字符的单行解决方案。但是,除了Jquery Code之外,每个标记都不会超过:
<input type="checkbox" id="theid">
所以,虽然会有一大块Jquery代码,但是单个元素会非常小,如果你按照我上一个项目的要求重复250次(以编程方式)这很重要。它易于编码,降级良好,验证良好,并且由于渐进式标记将在用户端,因此服务器端几乎没有成本。
我当前的项目是在Symfony中 - 而不是我的选择 - 它使用复杂,笨重的服务器端标签来呈现表单元素,验证,执行javascript onclick,样式等。这看起来就像你最初要求的那样....让我告诉你,它是CLUNKY。一个用于调用链接的标记可以是10行代码!在被迫做之后,我不是粉丝。
答案 6 :(得分:0)
嗯。首先想到的是,您可以创建自己的元素,然后使用XSLT转换为有效的HTML。
答案 7 :(得分:0)
随着新兴的W3 Web组件标准(特别是Custom Elements spec)的出现,您现在可以创建自己的自定义HTML元素,并使用document.register()
DOM方法向解析器注册它们。
X-Tag是一个由Mozilla开发的有用的糖库,可以更轻松地使用Web组件,看看:X-Tags.org