关闭HTML标记

关闭HTML标记,html,xhtml,Html,Xhtml,何时使用结束标记以及斜杠是否足够合适 <div></div> vs 可以包含某些内容的元素需要结束标记,例如div、a和body 对于仅由元素本身组成的元素,例如img、link和br来说,斜杠就足够了。区别在于,如果不使用结束标记,则只能设置标记的属性 如果你需要一些内容在里面,你需要一个开始和结束标签,在两者之间的内容 例如,如果需要使用跳过一行,技术上也可以使用,但没有人这样使用,因为跳过一行永远不会有任何中间环节 在的情况下,您可能会在其中包含大量内容,最

何时使用结束标记以及斜杠是否足够合适

<div></div>

vs



可以包含某些内容的元素需要结束标记,例如
div
a
body


对于仅由元素本身组成的元素,例如
img
link
br

来说,斜杠就足够了。区别在于,如果不使用结束标记,则只能设置标记的属性

如果你需要一些内容在里面,你需要一个开始和结束标签,在两者之间的内容

例如,如果需要使用

跳过一行,技术上也可以使用


,但没有人这样使用,因为跳过一行永远不会有任何中间环节


的情况下,您可能会在其中包含大量内容,最后需要一个结束标记。

如果元素是自包含的,并且具有在没有任何
内部HTML的情况下呈现自身所需的一切,那么您可以使用速记

,否则您应该使用

 <div> InnerHTML here </div>
InnerHTML在这里
如果查看(4.01 strict,因为5 dtd仍在进行中,尚未发布),您将看到一些元素定义为
,这意味着这些元素可以自动关闭。没有此定义的图元不能自动关闭

例如,
br
元素:

<!ELEMENT BR - O EMPTY                 -- forced line break -->

如果DOCTYPE设置为XHTML,则只能使用自动关闭标记
,因为这是从XML借用的,在XML中可以使用自动关闭标记。如果您的DOCTYPE设置为HTML4.01或HTML5,则无法拥有它

我不确定你想要这个的确切用例,但如果是为了清除浮动,你可以这样做,而不必担心兼容性问题,尤其是IE进入模拟模式时

<style type="text/css">
.clear-fix {
    clear: both !important;
    display: block !important;
    font-size: 0 !important;
    line-height: 0 !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
}
</style>
<br class="clear-fix" />

1.清除故障{
清楚:两者都有!很重要;
显示:块!重要;
字体大小:0!重要;
行高:0!重要;
边界:没有!重要;
填充:0!重要;
边距:0!重要;
列表样式:无!重要;
}


斜杠的可能重复是XHTML的事情。XHTML是一个失败的概念,所以不要使用它。空元素只包含一个标记(例如
),而非空元素有一个开始标记和一个结束标记(例如
内容
)。如果您想知道哪些元素是空的,哪些是非空的,请查找元素并检查其内容模型。什么是“链接”?我的理解是,任何包含内容的标签都需要关闭。大多数表单元素都是例外。我的问题是,哪种关闭方法是合适的?空元素(void元素)根本不应该关闭。非空元素应该用结束标记(例如,
)来结束。我想你在前两句中就把它钉住了,但在文章的其余部分我就丢了。有点过火了,说“重要”,哈?IE是一种痛苦,但我认为它可以通过适当的DOCTYPE标签来修复。:)+1@Patrick当然可以。HTML4或HTML5文档中可以有

元素,XHTML文档中可以有

元素。浏览器不在乎!这是
的完美用例!重要信息
标记。由于
clear fix
是一个类,当涉及到可以覆盖其值的内容时,它处于排名的底部。无论何时清除浮点数,这些状态都应始终为真。@Šime您不能将

放在XHTML文档中并根据W3C标准进行验证。W3C不是开始覆盖自己的规则了吗?为什么需要关闭没有任何内容的元素,如

等?@santa-HTML不是XML。XHTML是XML。对于HTML,您可以有


,它们的意思相同。对于
XHTML
,不能单独使用

——必须关闭它。规范是不同的,因为它们基于不同(尽管相似)的其他规范。因此,当您编写HTML时,为什么会担心它会被解释为XML文档?@santa-如果您正确编写它,并使用
DOCTYPE
正确标识它,您就不必担心了。有些人习惯于使用XML,因为解析XML比解析HTML容易得多,所以他们尝试确保他们的HTML与XML兼容,以便更容易实现自动化。
<!ELEMENT DIV - - (%flow;)*            -- generic language/style container -->
<style type="text/css">
.clear-fix {
    clear: both !important;
    display: block !important;
    font-size: 0 !important;
    line-height: 0 !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
}
</style>
<br class="clear-fix" />