“<元素/>”到“<元素> </元素>”是否有效

is `<element />` to `<element> </element>` valid?

本文关键字:元素 有效 是否      更新时间:2023-09-26

<element />替换元素是否有效<element></element> .在这种情况下,我想拥有,

<input {attributes}></input>

这样我就可以在其中附加验证数据...这也可以从<br /><hr />等处获得吗?

<input> 标签没有</input>,也不需要。 <br><hr>相同。 您可以使用如下自定义属性将验证数据作为属性放在输入标记(或任何标记)上:

<input type="text" data-validate="num">

如果您所说的验证是指要在输入标记附近显示的单独 HTML,请将其放在 <input> 标记之前或之后的自己的标记中:

<input type="text"><span class="validHint">This field accepts only numbers</span>
<input></input>

HTML4.01和HTML5中都无效。

根据W3C的验证服务:(原因突出显示)

验证输出:1 个错误

9 行,第 15 列:杂散结束标签输入。
<输入>

所以你去吧,你不能用<input></input>代替<input>.

如果要

将数据附加到元素,为什么不使用data-*属性?(例如 <input data-color="red" /> ) 这是有效的,并且应该同样易于实现。

在 HTML 4.01

之前(包括 HTML 4.01)的经典 HTML 中,<input></input> 无效。实际上,浏览器会忽略杂散的结束标记。它们不会忽略标签之间的内容,因此与<input>foo相比,<input>foo</input>一无所获。HTML5不打算改变这一点。

在XHTML中,<input></input>是有效的,但根据XHTML规范,不应该在Web上使用。如果在标记之间放置任何内容,则该内容将变为无效,因为input元素已使用 EMPTY 内容模型声明。

所以你应该采取完全不同的方法。这实际上取决于您要实现的目标,应该在其他标题下讨论。根据问题的不同,解决方案可以是新的HTML5属性之一,也可以是data-属性,也可以是隐藏字段,也可以是以某种方式隐藏的元素,或者可能只是文档树中的数据。