L’attribut "nom" est-il considéré comme obsolète pour < une > étiquettes d'ancrage?

StackOverflow https://stackoverflow.com/questions/608222

Question

Visual Studio n'aime pas les balises d'ancrage sur la page:

  

Validation (XHTML 1.0 Transitional):   L'attribut 'nom' est considéré   dépassé. Une nouvelle construction est   recommandé.

J'utilise les attributs name de cette manière & # 8230;

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

Y a-t-il vraiment une manière plus moderne de faire cela? Ou Visual Studio est-il plein de merde?

Était-ce utile?

La solution

Utilisez plutôt l'attribut id . Il fonctionne de la même manière et vous n'avez pas besoin d'un < un nom = ... > artificiel, mais simplement

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

Autres conseils

Les attributs de

nom sont obsolètes dans XHTML 1.0 - vous pouvez utiliser un attribut id dans le même Cependant, voir identificateurs de fragment dans Règles de compatibilité HTML des spécifications XHTML.

Vous pouvez donc simplement utiliser

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

Notez cependant que la spécification 1.0 recommande de jouer en toute sécurité avec quelque chose comme ceci:

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

Cependant, votre fragment utilise XHTML 1.1 , l'attribut de nom a été entièrement supprimé de a et de map éléments - vous ne pouvez donc utiliser qu'un identifiant.

Je pense que l'approche moderne consiste à utiliser l'attribut id , qui serait évalué comme une ancre. Par exemple, si vous avez changé

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

à

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

Vous l’adresseriez toujours comme page.html # one .

Vous pouvez également créer un lien vers un en-tête de section:

Table des matières

<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

Je pense que la bonne façon de procéder est d'utiliser un "id =" un ">

.

Oui, c'est obsolète. Vous devez remplacer par le " id " attribut.

Citation de la page w3schools:

  

& L'id Attribut Remplace Le nom Attribut   HTML 4.01 définit un attribut de nom pour les éléments a, applet, frame, iframe, img et map. En XHTML, l'attribut name est obsolète. Utilisez id à la place. "

http://www.w3schools.com/Xhtml/xhtml_syntax.asp

Les attributs

name = servent à étiqueter des éléments dans un formulaire et ne peuvent être utilisés que sur < formulaire > éléments (entrée, zone de texte, sélection, etc.). Pour tout le reste, ID = est utilisé. Il n’est pas facile de savoir exactement pourquoi les gens du W3C ont pensé que deux manières différentes de nommer un élément (avec différents ensembles de caractères autorisés) étaient nécessaires.

Mais ici http: //www.w3. org / TR / html4 / struct / links.html # h-12.2.3 J'ai lu ceci: " Certains anciens agents utilisateurs ne prennent pas en charge les ancres créées avec l'attribut id. " Alors?

Jusqu'à ce que < un nom = "..." > < / a > ne soit plus pris en charge par le standard (X) HTML que vous utilisez - et pas seulement obsolète. --il est peut-être plus sûr d'utiliser à la fois nom et id sur des ancres menant vers une partie de la même page. Dans la spécification XHTML 1 du W3C :

.
  

En XML, références d'URI RFC2396 qui se terminent par fragment   Les identifiants de la forme " # foo " ne font pas référence aux éléments dotés d'un attribut name = "foo " ; plutôt,   ils font référence à des éléments avec un attribut défini comme étant de type ID, par exemple l'attribut id en HTML   4. De nombreux clients HTML existants ne prennent pas en charge l’utilisation d’attributs de type ID de cette manière.   des valeurs peuvent être fournies pour ces deux attributs afin de garantir un rendement maximal en amont et en aval.   compatibilité (par exemple, < a id = "foo"; name = "foo" > ... a lt; / a >) .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top