Is the 'name' attribute considered outdate

2019-02-08 09:09发布

Visual Studio doesn't like on-page anchor tags:

Validation (XHTML 1.0 Transitional): Attribute 'name' is considered outdated. A newer construct is recommended.

I'm using name attributes in this way…

<?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&hellip;</p>
        <ul>
            <li><a href="#one">Section One</a></li>
            ...
        </ul>
        ...
        <h2><a name="one">Section One</a></h2>
        ...
    </body>
</html>

Is there really a more-modern way of doing this? Or is Visual Studio full of crap?

9条回答
疯言疯语
2楼-- · 2019-02-08 10:05

name attributes are deprecated in XHTML 1.0 - you can use an id attribute in the same way though, see Fragment Identifiers in the HTML Compatibility Guidelines of the XHTML spec.

So you can simply use

<h2><a id="one">Section One</a></h2>

But note that the 1.0 spec recommends playing it safe with something like this:

<h2><a name="one" id="one">Section One</a></h2>

However, your fragment uses XHTML 1.1, where the name attribute has been entirely removed from a and map elements - so you can only use an id.

查看更多
我只想做你的唯一
3楼-- · 2019-02-08 10:05

You can also link on a section header :

Table of Contents

<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>

Source: http://www.w3.org/TR/REC-html40/struct/links.html

查看更多
何必那么认真
4楼-- · 2019-02-08 10:13

You should use the id attribute instead. Works the same way, and you don't need an artifical <a name=...>, but simply

<h2 id="one">Section One</h2>
查看更多
登录 后发表回答