Чи дійсні пробіли в "href"?


9

Чи <a href=" #id ">правильний (X) HTML (пробіли приміток)?

Це означає те саме, що <a href="#id">?


1
У HTML це, безумовно, підтвердить, і я вважаю, що вони рівноцінні. Користувальницький агент повинен позбавити пробілів провідних та кінцевих пробілів. Довідка: w3.org/TR/2014/REC-html5-20141028/…
MrWhite

Відповіді:


7

В (X) , HTML5, в aелементі «сек hrefатрибут

[…] Має мати значення, яке є дійсною URL-адресою, потенційно оточеною пробілами .

Як підказує якір, він може містити провідні та кінцеві пробіли .

Зв'язаний розділ дає зрозуміти, що ці пробіли будуть позбавлені :

[…] Агент користувача повинен видалити всі символи пробілу, які знаходяться на початку або в кінці рядка […]


Якщо фактична URL-адреса починається / закінчується (або містить) пробіли, вам потрібно відсотково кодувати їх %20.

Ці елементи мають різні значення URL:

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

Ці елементи мають однакове значення 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

Навіщо ти це робив? Хто пише такий код? Це зайвий простір між "".

Буквальні пробіли не допускаються в URL-адресах і вони не є частиною даних. просто форматування для споживання людиною.

Потрібно видалити пробіл. Деякі браузери відображають це як пробіл.

Проміжки дійсні. І вони обоє різні тому, що в одного є пробіли, в іншого немає. Це означає, що форматування чи посилання відрізняються.


0

Так, браузер автоматично буде виправлений, але, використовуючи пробіли, ви отримаєте помилку, ви можете записати їх іншим способом:

URL-адреса, таким чином, href, підтримує пробіли, просто замініть їх на "% 20", якщо ви пишете

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

Це призведе до "#id", а не "#id"

Наприклад:

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

-1

Ви можете самостійно запустити розмітку через валідатор, щоб з’ясувати, чи правильно написане вами. Але дійсна розмітка не завжди вказує на дійсний транспорт і пробіли повинні бути кодовані URL-адресою (і хеш-позначкою також).

Ви можете дізнатися більше, скориставшись Stackoverflow. Зокрема, ця відповідь ТАК . Ваші персонажі не безпечні для використання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.