Les espaces en «href» sont-ils valides?


9

Est <a href=" #id ">(espaces de notes) correctes (X) HTML?

Cela signifie-t-il la même chose que <a href="#id">?


1
En HTML, cela validera certainement et je pense qu'ils sont équivalents. L'agent utilisateur doit supprimer les espaces blancs de début et de fin. Référence: w3.org/TR/2014/REC-html5-20141028/…
MrWhite

Réponses:


7

En (X) HTML5, l' aélément d » hrefattribut

[…] Doit avoir une valeur qui est une URL valide potentiellement entourée d'espaces .

Comme l'ancre le suggère, 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 d'espace qui se trouvent 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 coder en pourcentage avec %20.

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

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

0

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 ne font pas partie des données. juste formatage pour la consommation humaine.

Vous devez supprimer l'espace blanc. Certains navigateurs le rendent sous forme d'espace.

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


0

Oui, il sera corrigé automatiquement par le navigateur, de toute façon, 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, remplacez-les simplement par "% 20" Quoi qu'il en soit, si vous écrivez

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

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

Par exemple:

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

-1

Vous pouvez exécuter vous-même votre balisage via le validateur pour savoir si ce que vous avez écrit est valide. Mais un balisage valide n'est pas toujours une indication de transport valide et les espaces doivent être codés par URL (et la marque de hachage également).

Vous pouvez en savoir plus en recherchant Stackoverflow. En particulier, cette réponse SO . Vos personnages ne sont pas sûrs à utiliser.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.