Risposte:
In (X) HTML5, l' a
elemento ‘s href
attributo
[…] Deve avere un valore che è un URL valido potenzialmente circondato da spazi .
Come suggerisce l'ancoraggio, può contenere spazi iniziali e finali .
La sezione collegata chiarisce che questi spazi verranno rimossi :
[...] l'agente utente deve rimuovere tutti i caratteri di spazio che si trovano all'inizio o alla fine della stringa [...]
Se l'URL effettivo inizia / finisce con (o contiene) spazi, è necessario codificarli in percentuale %20
.
Questi elementi hanno valori URL diversi:
<a href=" foo">…</a> <!-- the URL is <foo> -->
<a href="%20foo">…</a> <!-- the URL is < foo>, i.e., <%20foo> -->
Questi elementi hanno lo stesso valore 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>
Perché dovresti farlo? Chi scrive questo codice? Questo è uno spazio non necessario tra "".
Gli spazi letterali non sono consentiti negli URL e non fanno parte dei dati. solo formattazione per il consumo umano.
Devi rimuovere lo spazio bianco. Alcuni browser lo rendono come uno spazio.
Gli spazi sono validi. Ed entrambi sono diversi perché, uno ha spazi, l'altro no. Ciò significa che la formattazione o il collegamento sono diversi.
Sì, verrà automaticamente corretto dal browser, comunque se usando gli spazi ottieni un errore puoi scriverli in un altro modo:
un URL, quindi un href, supporta gli spazi, basta sostituirli con "% 20" Comunque se scrivi
<a href="%20#id"> </a>
Ciò comporterà un "#id" e non un "#id"
Per esempio:
<a href="?How%20Are%20You">How are you?</a>
Puoi eseguire tu stesso il markup tramite il validatore per scoprire se ciò che hai scritto è valido. Ma un markup valido non è sempre un'indicazione di trasporto valido e gli spazi devono essere codificati in URL (e anche il segno di hash).
Puoi saperne di più cercando Stackoverflow. In particolare, questa risposta SO . I tuoi personaggi non sono sicuri da usare.