Sind Leerzeichen in "href" gültig?

9

Ist <a href=" #id ">(Notizräume) korrekt (X) HTML?

Bedeutet es dasselbe wie <a href="#id">?

porton
quelle
1
In HTML wird es sicherlich validieren und ich glaube, dass sie gleichwertig sind. Der Benutzeragent sollte führende und nachfolgende Leerzeichen entfernen. Referenz: w3.org/TR/2014/REC-html5-20141028/…
MrWhite

Antworten:

7

In (X) HTML5, das aElemente ‚s hrefAttribut

[…] Muss einen Wert haben, der eine gültige URL ist, die möglicherweise von Leerzeichen umgeben ist .

Wie der Anker vorschlägt, kann er führende und nachfolgende Leerzeichen enthalten .

Der verknüpfte Abschnitt macht deutlich, dass diese Leerzeichen entfernt werden :

[…] Der Benutzeragent muss alle Leerzeichen entfernen , die sich am Anfang oder Ende der Zeichenfolge befinden. […]


Wenn die eigentliche URL mit Leerzeichen beginnt / endet (oder diese enthält), müssen Sie sie mit Prozent codieren %20.

Diese Elemente haben unterschiedliche URL-Werte:

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

Diese Elemente haben denselben URL-Wert:

<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
quelle
0

Wieso würdest du das machen? Wer schreibt so Code? Das ist unnötiger Platz zwischen "".

Literale Leerzeichen sind in URLs nicht zulässig und nicht Teil der Daten. nur Formatierung für den menschlichen Verzehr.

Sie müssen das Leerzeichen entfernen. Einige Browser rendern es als Leerzeichen.

Leerzeichen sind gültig. Und beide sind unterschiedlich, weil einer Leerzeichen hat, der andere nicht. Das bedeutet, dass Formatierung oder Link unterschiedlich sind.

Josip Ivic
quelle
0

Ja, es wird vom Browser automatisch korrigiert. Wenn Sie Leerzeichen verwenden und eine Fehlermeldung erhalten, können Sie diese auf andere Weise schreiben:

Eine URL, also eine href, unterstützt Leerzeichen. Ersetzen Sie sie einfach durch "% 20". Wie auch immer, wenn Sie schreiben

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

Dies führt zu einer "#id" und nicht zu einer "#id"

Z.B:

<a href="?How%20Are%20You">How are you?</a>
HAlex
quelle
-1

Sie können Ihr Markup selbst durch den Validator ausführen, um herauszufinden, ob das, was Sie geschrieben haben, gültig ist. Ein gültiges Markup ist jedoch nicht immer ein Hinweis auf einen gültigen Transport, und Leerzeichen müssen URL-codiert sein (und auch das Hash-Zeichen).

Sie können mehr erfahren, indem Sie nach Stackoverflow suchen. Insbesondere diese SO-Antwort . Deine Charaktere sind nicht sicher zu benutzen.

rauben
quelle