2

上下文:目前,如果锚点应指向的链接为空,Wt(Web Toolkit)将把 WAnchor 对象呈现为<span>标签而不是标签。<a>

然而,这种方法存在一些问题,特别是它给 CSS 样式增加了不必要的复杂性(例如,当使用 Twitter Bootstrap 时)。

我参与了与 Wt 开发人员之一的讨论,提出了一个补丁来改变这种行为:http ://redmine.emweb.be/issues/1348

他指出,当前行为是由于某些浏览器在呈现没有属性<a>的标签时出现问题(可能是较旧的移动浏览器?)。href

按照官方的HTML规范,这样是没有问题的:

据我所知...

<a>Link</a> // OK
<a href>Link</a> or <a href="">Link</a> // Undefined? (but common behavior is to navigate to the current URL)
<a href="/items">Link</a> // OK

我还使用 W3C HTML5 验证器检查了以下文档:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<a>Example of an anchor with no href attribute.</a>
<a href>Example of an anchor with a null href attribute.</a>
<a href="">Example of an anchor with an empty string href attribute.</a>
<a href="http://www.google.com/">Example of an anchor that links to Google.</a>
</body>
</html>

我收到一个警告:

Line 9, Column 8: Attribute href without an explicit value seen. The attribute may be dropped by IE7. <a href>Example of an anchor with a null href attribute.</a>

所以我的问题是:是否存在任何已知情况,标签上完全缺少href属性<a>会导致某些浏览器出现问题?IE?移动Safari?

4

1 回答 1

3

没有属性的a元素href在 HTML 中一直是有效的,没有理由期望任何浏览器都会有这个问题。这样的元素实际上类似于span,即缺乏任何语义。传统<a name="...">...</a>上已用于设置目标锚点,通常没有href属性,并且此类元素可以跨浏览器工作,尽管使用该id属性(在任何元素上)更现代且更值得推荐。

使用href=""形式上是正确的,带有一个空 URL,它被解释为同文档引用。

根据当前的 HTML 规范,不使用href任何值是无效的。通过 HTML5 草案,它可以用于 HTML 序列化,相当于href="". 不能保证浏览器会以这种方式运行。

于 2012-07-09T22:40:41.537 回答