Czy spacje w „href” są prawidłowe?

9

Czy <a href=" #id ">(spacje) HTML jest poprawny (X)?

Czy to znaczy tak samo jak <a href="#id">?

porton
źródło
1
W HTML z pewnością się sprawdzi i uważam, że są równoważne. Klient użytkownika powinien usunąć początkowe i końcowe białe spacje. Odniesienie: w3.org/TR/2014/REC-html5-20141028/...
MrWhite

Odpowiedzi:

7

W (X) HTML5, aelementu „s hrefatrybut

[…] 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>
unor
źródło
0

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.

Josip Ivic
źródło
0

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>
HAlex
źródło
-1

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.

Obrabować
źródło