为什么有些html开始标记以正斜杠结尾?

18 html

这可能是一个新手问题,但我需要知道我需要知道的事情:)

为什么有些html开始标记以正斜杠结尾?例如:

 <meta name="keywords" content="bla bla bla" />
Run Code Online (Sandbox Code Playgroud)

什么是持续的斜线?如果我将其删除会怎样?

还有一些其他标签也有这个...我删除了一些没有任何事情发生.

Que*_*tin 28

XHTML中 <foo />是简写<foo></foo>.在HTML中,语法模糊不清,并标记为"不要这样做",因为浏览器不支持它.

如果您正在编写XHTML但假装它是HTML(因此不支持XHTML的浏览器(如Internet Explorer 8)可以处理它),那么EMPTY在规范中定义的元素必须以这种方式表示(以及不是一定不).

  • 正如甲骨文所说的那样"一切都有了开端......" (4认同)
  • @David 很公平,但我对 SGML NET conecpt 的理解是 `&lt;em/bla/` 是 `&lt;em&gt;bla&lt;/em&gt;` 的缩写,并且您引用的参考基本上说不要那样做,而是比不做`&lt;em/&gt;`。另见 http://en.wikipedia.org/wiki/Sgml#NET (2认同)

sen*_*nfo 7

在HTML的早期阶段,找到如下代码并不罕见:

<ul>
  <li>item 1
  <li>Item 2
  <li>Item 3
</ul>
Run Code Online (Sandbox Code Playgroud)

这种方法的问题在于它导致HTML解析非常繁琐,因为通常很难理解意图.因此,解析HTML的开发人员必须依赖一些[通常]不可靠的假设.

为了缓解这个问题,标准委员会要求XHTML 形成良好.因此,所有标签都需要同时包含开始标记和结束标记,并使用以下内容替换上述HTML:

<ul>
  <li>item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

这适用于包含内部文本或子元素的标记,但它不适用于独立的标记(例如,<br>标记).为了克服这个问题,在遵守规则规定所有标签必须具有相应的结束标签的同时,标准委员会支持一个正斜杠(例如,<br />).但应注意,在XHTML中,以下内容也是合法的:<br> </ br>.