当前位置: 首页 > 面试题库 >

为元素编写自闭标签不是传统上的空习惯吗?

秦经义
2023-03-14
问题内容

我已经注意到jQuery(或者是Firefox)会打开我的一些 <span class="presentational"></span> into <span class="presentational" />

现在我的问题是,这样写我的标记可以吗?有浏览器会窒息吗?

就个人而言,<span class="presentational" />如果它是空的,我认为这样做看起来更干净。


问题答案:

我假设您的问题与在Firefox中查看源代码时自动关闭元素上的红色斜杠有关。如果是这样,您就陷入了浏览器制造商与网络开发人员之战中最激烈但同时又被动的激进辩论之一。XHTML不仅仅是关于文档的标记。这也与如何通过网络提供文档有关。

在我开始之前;我正在努力不站在这里。

XHTML 1.1规范指出,Web服务器应为Content-Type为application / xhtml +
xml的XHTML提供服务。Firefox会将那些尾随的斜杠视为无效,因为您的文档以text / html而不是application / xhtml +
xml的形式提供。举两个例子;相同的标记,一个标记为application / xhtml + xml,另一个标记为text / html。

http://alanstorm.com/testbed/xhtml-as-
html.php

http://alanstorm.com/testbed/xhtml-as-
xhtml.php

Firefox在meta标记中将尾部斜杠标记为对于text / html提供的文档无效,而对于application / xhtml +
xml提供的文档有效。

为什么有争议

对于浏览器开发人员而言,XHTML的重点是您可以将文档视为XML,这意味着,如果有人向您发送了无效的信息,那么规范说明您不必解析它。因此,如果文档充当application
/ xhtml + xml并具有格式不正确的内容,则允许开发人员说“不是我的问题”。您可以在这里看到实际效果

http://alanstorm.com/testbed/xhtml-not-
valid.php

当文档用作text / html时,Firefox将其视为普通的旧HTML文档并使用原谅,为您修复它,解析例程

http://alanstorm.com/testbed/xhtml-not-valid-as-
html.php

因此,对于浏览器制造商来说,充当text / html的XHTML太荒谬了,因为浏览器的渲染引擎从未将它视为XML。

几年前,Web开发人员希望不仅仅是标记猴子(免责声明:我也包括其中之一),他们开始寻找开发最佳实践的方法,这些最佳实践不涉及三次嵌套表,但仍然可以提供引人注目的设计体验。他们/我们锁定了XHTML
/ CSS,因为W3C表示这是未来,唯一的选择是由单个供应商(Microsoft)控制事实上的标记规范。真正的罪恶在于只有 一个供应商
,而不是微软。我发誓。

那么争议在哪里?application / xhtml + xml存在两个问题。第一个是Internet Explorer。IE中有一个遗留的bug
/功能,其中内容作为application / xhtml + xml会提示用户下载文档。如果您尝试通过IE访问上面列出的xhtml-as-
xhtml.php,则很可能会发生这种情况。这意味着,如果要使用application / xhtml + xml,则必须 浏览器嗅探IE
,检查Accepts标头,然后仅将application / xhtml +
xml提供给接受它的浏览器。,而且还违背了Web开发人员所追求的“一次写入”原则。

第二个问题是XML的苛刻性。再次,这是易发火焰的问题之一,但是有些人认为单个不良标签或编码不正确的单个字符不应导致用户看不到他们想要的文档。换句话说,是的,规范说如果格式不正确,您应该停止处理XML,但是用户不关心规范,他们关心猫的网站已损坏。

XHTML 1.0(不是1.1)规范增加了更多的汽油问题,该规范说XHTML文档_可以_用作text/html,前提是遵循某些兼容性准则。诸如img标签之类的东西会自动关闭等。这里的关键词是
五月 。用RFC讲,可能意味着可选。Firefox选择不将使用XHTMLdoctype而是text/html内容类型的文档视为XHTML。但是,W3C验证程序将很高兴地将这些文档报告为有效。

我将让读者去思考一种同时存在的文化奇迹/恐怖,该文化写了一篇文档来定义“ 可能 ”一词的含义。

向前进

最后,这就是整个HTML 5的意义所在。XHTML变成了一个政治热点,以至于许多想将语言向前发展的人决定朝另一个方向发展。他们制定了HTML5规范。目前,该规范已在W3C中进行了混编,并有望在未来十年内完成。同时,浏览器供应商正在从进行中的规范中选择功能并加以实现。

评论更新

Alex在评论中指出,如果您要嗅探某些内容,则应检查Accept标头以查看用户代理是否接受application/ xhtml + xml。

这是绝对正确的。通常,如果要嗅探,请嗅探该功能,而不是浏览器。



 类似资料:
  • 问题内容: 我有这个嵌套的golang结构: 当我使用值对其进行初始化并进行封送处理时,它看起来像这样: 我怎样才能摆脱的结束标记和,所以它只是看起来像? 问题答案: 没有内容 的 元素和 结束标记 在XML级别上没有区别: 和一个 空元素标签 : 要控制使用哪种格式,您必须将数据视为文本而不是XML,但最好不要担心没有区别的区别。 [为完整性而添加] …不明确和过时的建议 为了实现互操作性,对于

  • 我正在使用Xerces库在文档中编写XML。为此,我使用OutputFormat类在XMLSerializer中传递OutputFormat的对象。但我所有的空xml元素都转换为自动关闭的xml元素。 我想要这个: 但它的到来就像 我尝试了以下代码: 有人能帮我解决这个问题吗。 谢谢

  • 问题内容: 我经常看到有关不鼓励使用的其他问题的评论。为什么这样不好?有时我只是不在乎错误是什么,我只想继续编写代码。 为什么使用积木不好?是什么让它不好?是我pass出错还是我except出错了? 问题答案: 正如你正确猜到的那样,它有两个方面:通过在后面不指定任何异常类型来捕获任何错误,并在不采取任何操作的情况下简单地传递它。 我的解释要“长一点”,因此; 可以细分为: 不要发现任何错误。始终

  • 无聊和乏味的工作是罪恶 -- Eric S. Raymond 构建于图形界面之上的操作系统,使用鼠标作为主输入设备, 是否使用缩写并不重要。比如 Windows 系统中的目录,几乎都是全称…… 点击两次鼠标进入文件夹 pf, 并不意味着点击13次才能进入文件夹 Program Files 而构建于命令行之上的操作系统,如 Linux,只要3个字母以上的单词,几乎都要缩写。 例如: cd 命令是 C

  • 本文向大家介绍有哪些标签是不支持伪元素的?相关面试题,主要包含被问及有哪些标签是不支持伪元素的?时的应答技巧和注意事项,需要的朋友参考一下 首先我们要知道伪元素有哪些: ::after ::before ::first-letter ::fist-line (单双冒号皆可) ::selection ::backdrop (仅双冒号) 伪元素虽然强大,但是还是有一些特定的标签是不支持伪元素 befo