web-dev-qa-db-fra.com

Les espaces dans "href" sont-ils valides?

<a href=" #id "> (espaces de note) est-il correct (X) HTML?

Est-ce que cela signifie la même chose que <a href="#id">?

9
porton

En (X) HTML5, le a élément ’s href attribut

[…] Doit avoir une valeur URL valide, éventuellement entourée d'espaces .

Comme le suggère l'ancre, , il peut contenir des espaces de début et de fin .

La section liée indique clairement que ces espaces seront supprimés :

[…] L'agent utilisateur doit supprimer tous les caractères espace qui sont au début ou à la fin de la chaîne […]


Si l'URL réelle commence/se termine par (ou contient) des espaces, vous devez les encoder en pourcentage avec %20.

Ces éléments ont des valeurs d'URL différentes:

<a href=" foo">…</a> <!-- the URL is <foo> -->
<a href="%20foo">…</a> <!-- the URL is < foo>, i.e., <%20foo> -->

Ces éléments ont la même valeur d'URL:

<a href="%20foo">…</a>
<a href="%20foo ">…</a>
<a href="%20foo   ">…</a>
<a href=" %20foo">…</a>
<a href="    %20foo">…</a>
<a href="    %20foo    ">…</a>
6
unor

Pourquoi voudriez-vous faire cela? Qui écrit du code comme ça? C'est un espace inutile entre "".

Les espaces littéraux ne sont pas autorisés dans les URL et ils ne font pas partie des données. juste le formatage pour la consommation humaine.

Vous devez supprimer les espaces. Certains navigateurs le rendent comme un espace.

Les espaces sont valables. Et ils sont tous les deux différents parce que l'un a des espaces, l'autre non. Cela signifie que le formatage ou le lien est différent.

0
Josip Ivic

Oui, cela sera corrigé automatiquement par le navigateur. Néanmoins, si vous utilisez des espaces, vous obtenez une erreur, vous pouvez les écrire d'une autre manière:

une URL, donc une href, prend en charge les espaces, il suffit de les remplacer par "% 20" De toute façon si vous écrivez

<a href="%20#id"> </a>

Cela se traduira par un "#id" et non pas "#id"

Par exemple:

<a href="?How%20Are%20You">How are you?</a>
0
HAlex