「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で許可されておらず、データの一部ではありません。人間が使用できるようにフォーマットするだけです。

空白を削除する必要があります。一部のブラウザは、それをスペースとしてレンダリングします。

スペースは有効です。そして、両方に違いがあります。1つにはスペースがあり、もう1つにはないからです。つまり、そのフォーマットやリンクは異なります。


0

はい、とにかくブラウザで自動的に修正されます。スペースを使用するとエラーが発生した場合は、別の方法で記述できます。

URL、つまりhrefはスペースをサポートしているので、「%20」に置き換えてください。

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

これは、「#id」ではなく「#id」になります。

例えば:

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

-1

自分でマークアップをバリデーターを介し実行して、書き込んだものが有効かどうかを確認できます。ただし、有効なマークアップは常に有効なトランスポートを示すものではなく、スペース URLエンコードされている必要があります(ハッシュマークも同様)。

Stackoverflowを検索すると、詳細を確認できます。特に、このSOは答えます。あなたのキャラクターは安全に使用できません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.