Warum sollte "& apos;" nicht verwendet werden, um einfachen Anführungszeichen zu entgehen?


158

Wie bereits erwähnt, wann wurden einfache Anführungszeichen in HTML so beliebt? und Jquery eingebettet Zitat in Attribut , sagt der Wikipedia-Eintrag auf HTML Folgendes:

Das einfache Anführungszeichen (') muss, wenn es zum Anführungszeichen eines Attributwerts verwendet wird, auch als 'oder '(sollte NICHT 'außer in XHTML-Dokumenten maskiert werden) maskiert werden, wenn es im Attributwert selbst angezeigt wird.

Warum sollte nicht 'verwendet werden? Ist es auch "sicher, anstelle von verwendet zu werden "?



7
Beachten Sie, dass IE8 nicht unterstützt '.
Paul D. Waite

Antworten:


178

"steht auf der offiziellen Liste der gültigen HTML 4-Entitäten , ist es aber 'nicht.

Ab C.16. Die Referenz für benannte Zeichen ' :

Die benannte Zeichenreferenz ' (Apostroph, U + 0027) wurde in XML 1.0 eingeführt, erscheint jedoch nicht in HTML. Autoren sollten daher verwenden, 'anstatt 'wie erwartet in HTML 4-Benutzeragenten zu arbeiten.


3
"ist auf der Liste, sollte also in Ordnung sein.
Bennett McElwee

9
Heute ist passiert, dass auf einem IE8-Rechner & apos; wurde nicht analysiert, sodass der Benutzer den Code sieht. Ersetzen durch & # 39; Problem gelöst.
Michele Gargiulo

9
& aquot; ist KEIN Ersatz für & apos; als einer ein Einzel und der andere ein Doppel.
RichardTheKiwi

Zu Ihrer Information: HTML5 unterstützt beide Entitäten
Tarol


29

" ist sowohl in HTML5 als auch in HTML4 gültig.

'ist gültig in HTML5 , aber nicht in HTML4 . Die meisten Browser unterstützen jedoch 'trotzdem HTML4.


10
Beachten Sie, dass IE 8 nicht unterstützt '.
Paul D. Waite

17

Wenn Sie semantisch korrekten Aufschlag schreiben müssen, auch in HTML5, müssen Sie nicht verwenden 'einfache Anführungszeichen zu entkommen. Obwohl ich mir vorstellen kann, dass Sie eigentlich eher Apostroph als einfaches Anführungszeichen gemeint haben.

einfache Anführungszeichen und Apostrophe sind semantisch nicht gleich, obwohl sie möglicherweise gleich aussehen.

Hier ist ein Apostroph.

Verwenden 'Sie diese Option, um sie einzufügen, wenn Sie HTML4-Unterstützung benötigen. (bearbeitet)

Im britischen Englisch werden einfache Anführungszeichen wie folgt verwendet:

"Er sagte mir, ich solle es versuchen", sagte ich.

Zitate kommen paarweise. Sie können verwenden:

<p><q>He told me to <q>give it a try</q></q>, I said.<p>

semantisch korrekte Verschachtelung von Anführungszeichen, um die Ersetzung der tatsächlichen Zeichen durch die Rendering-Engine zu verschieben. Diese Ersetzung kann dann durch CSS-Regeln beeinflusst werden , wie z.

q {
  quotes: '"' '"' '<' '>';
} 

Ein alter, aber scheinbar immer noch relevanter Artikel über semantisch korrektes Markup: Das Problem mit EM 'n EN (und anderen zwielichtigen Charakteren) .

(bearbeitet) Dies war früher:

Verwenden Sie ', um es einzufügen, wenn Sie HTML4-Unterstützung benötigen.

Aber, wie @James_pic betonte, ist das nicht das gerade einfache Anführungszeichen, sondern das "einfache gekrümmte Anführungszeichen, richtig".


Bei der Frage ging es eindeutig um die Verwendung von Apostrophen und nicht um Zitate. Warum würdest du das posten?
Alex Skrypnyk

9
Ich sehe deutlich ein einfaches Zitat im Titel. Die Frage war, warum es nicht mit & apos; . Ich habe darauf geantwortet, weil die Unterstützung für & apos; ist nicht das einzige Problem.
R. Schreurs

3
Einfache Anführungszeichen werden auf diese Weise auch im amerikanischen Englisch verwendet.
Rob_vH

Dies sollte die akzeptierte Antwort sein, da klargestellt wird, dass Apostroph und einfache Anführungszeichen nicht dasselbe sind. Deshalb sollten Sie keine Apostrophe verwenden, um einen HTML-Attributwert einzuschließen.
Delroh

In Unicode wird das Apostrophzeichen (& # 39;) als Anführungszeichen klassifiziert und ist die einzige Form des "geraden" Anführungszeichens in der Spezifikation. Der Ratschlag zur Verwendung von & # 8217; ist bestenfalls unvollständig, denn das ist das Zeichen für "Einfach gebogenes Zitat, richtig". Wenn Sie wirklich auf semantische Korrektheit setzen, sollte sie für richtige Anführungszeichen verwendet werden, während & # 8216; ("Einfaches gebogenes Anführungszeichen, links") sollte für linke Anführungszeichen verwendet werden.
James_pic

2

Wenn Sie wirklich einfache Anführungszeichen, Apostrophe, benötigen, können Sie verwenden

html    | numeric | hex
&lsquo; | &#145;  | &#x91; // for the left/beginning single-quote and
&rsquo; | &#146;  | &#x92; // for the right/ending single-quote

-2

In meinem Fall war es ein Fehler, als ich versuchte, ein Zitat im Text zu verwenden Time's up! . Es gab eine Warnung von Eslint.

Um das Problem zu beheben, habe ich das Zitat durch ersetzt Time&apos;s up!. Ergebnis ist wie erwartet

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.