Czy <a href=" #id ">
(spacje) HTML jest poprawny (X)?
Czy to znaczy tak samo jak <a href="#id">
?
Czy <a href=" #id ">
(spacje) HTML jest poprawny (X)?
Czy to znaczy tak samo jak <a href="#id">
?
Odpowiedzi:
W (X) HTML5, a
elementu „s href
atrybut
[…] Musi mieć wartość, która jest prawidłowym adresem URL potencjalnie otoczonym spacjami .
Jak sugeruje kotwica, może zawierać spacje początkowe i końcowe .
Połączona sekcja wyjaśnia, że te przestrzenie zostaną usunięte :
[…] Agent użytkownika musi usunąć wszystkie znaki spacji znajdujące się na początku lub na końcu ciągu […]
Jeśli rzeczywisty adres URL zaczyna się / kończy spacjami (lub zawiera), musisz je kodować procentowo za pomocą %20
.
Te elementy mają różne wartości adresów URL:
<a href=" foo">…</a> <!-- the URL is <foo> -->
<a href="%20foo">…</a> <!-- the URL is < foo>, i.e., <%20foo> -->
Te elementy mają tę samą wartość adresu 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>
Dlaczego miałbyś to zrobić? Kto pisze taki kod? To niepotrzebne miejsce pomiędzy „”.
Literalne spacje nie są dozwolone w adresach URL i nie stanowią części danych. po prostu formatowanie do spożycia przez ludzi.
Musisz usunąć biały znak. Niektóre przeglądarki renderują go jako spację.
Spacje są prawidłowe. I oba są różne, ponieważ jedno ma spacje, drugie nie. Oznacza to, że formatowanie lub łącze jest inne.
Tak, zostanie to automatycznie skorygowane przez przeglądarkę. W każdym razie, jeśli używasz spacji, pojawia się błąd, który możesz napisać w inny sposób:
URL, więc href, obsługuje spacje, po prostu zamień je na „% 20” W każdym razie, jeśli piszesz
<a href="%20#id"> </a>
Spowoduje to „#id”, a nie „#id”
Na przykład:
<a href="?How%20Are%20You">How are you?</a>
Możesz sam uruchomić znaczniki za pomocą walidatora, aby sprawdzić, czy to, co napisałeś, jest prawidłowe. Ale prawidłowy znacznik nie zawsze wskazuje na prawidłowy transport, a spacje muszą być zakodowane w adresie URL (a także znak krzyżyka).
Możesz dowiedzieć się więcej, przeszukując Stackoverflow. W szczególności ta SO odpowiedź . Twoje postacie nie są bezpieczne w użyciu.