Visual Studio不喜欢页面上的锚标记:
验证(XHTML 1.0 Transitional): 考虑属性“名称” 过时。一个较新的结构是 推荐使用。
我以这种方式使用name
属性......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd" xml:lang="en">
...
<body>
...
<p>On this page…</p>
<ul>
<li><a href="#one">Section One</a></li>
...
</ul>
...
<h2><a name="one">Section One</a></h2>
...
</body>
</html>
真的有更现代的方式吗?或者Visual Studio充满了垃圾?
答案 0 :(得分:20)
您应该使用id
属性。以相同的方式工作,您不需要人工<a name=...>
,只需
<h2 id="one">Section One</h2>
答案 1 :(得分:15)
名称属性 - 您可以采用相同的方式使用id属性,请参阅XHTML规范的Fragment Identifiers中的HTML Compatibility Guidelines。
所以你可以简单地使用
<h2><a id="one">Section One</a></h2>
但请注意,1.0规范建议使用以下内容安全地播放它:
<h2><a name="one" id="one">Section One</a></h2>
但是,您的片段使用XHTML 1.1,其中name属性来自a
和map
元素的entirely removed - 因此您只能使用ID。
答案 2 :(得分:2)
我认为现代方法是使用id
属性,该属性将被评估为锚点。例如,如果您更改了
<h2><a name="one">Section One</a></h2>
到
<h2><a id="one">Section One</a></h2>
您仍会将其视为page.html#one
。
答案 3 :(得分:2)
您还可以链接节标题:
<P>
<A href="#section1">Introduction</A><BR>
<A href="#section2">Some background</A><BR>
<A href="#section2.1">On a more personal note</A><BR>
...the rest of the table of contents...
...the document body...
<H2 id="section1">Introduction</H2>
...section 1...
<H2 id="section2">Some background</H2>
...section 2...
<H3 id="section2.1">On a more personal note</H3>
...section 2.1...
[...]
</P>
答案 4 :(得分:1)
我认为正确的方法是&lt; a id =“one”&gt;
答案 5 :(得分:1)
是的它已经过时了。您应该使用“id”属性替换。
引用w3schools页面:
“ id属性替换名称属性 HTML 4.01为元素a,applet,frame,iframe,img和map定义了name属性。在XHTML中,不推荐使用name属性。请改用id。“
答案 6 :(得分:1)
name = attributes用于标记表单中的元素,并且只能用于&lt; form&gt;元素(输入,文本区域,选择等)。对于其他一切,使用ID =。究竟为什么W3C人员认为需要两种不同的命名元素(使用不同的允许字符集)的方法并不为人所知。
答案 7 :(得分:1)
但是http://www.w3.org/TR/html4/struct/links.html#h-12.2.3我在这里读到:“一些较旧的用户代理不支持使用id属性创建的锚点。”所以?
答案 8 :(得分:0)
在您使用的(X)HTML标准不再支持<a name="..."></a>
之前 - 而不仅仅是弃用 - 最好同时使用name
和id
锚点链接到同一页面的一部分。来自W3C's XHTML 1 spec:
在XML中,以片段结尾的URI引用RFC2396
"#foo"
形式的标识符不引用具有属性name="foo"
的元素;相反, 它们引用具有定义为ID类型的属性的元素,例如HTML中的id
属性 4.许多现有的HTML客户端不支持以这种方式使用ID类型属性,因此完全相同 可以为这两个属性提供值,以确保最大向前和向后 兼容性(例如<a id="foo" name="foo">...</a>)
。