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 "?

Brad
quelle
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.

Cletus
quelle
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
30

' ist nicht Teil des HTML 4-Standards.

" ist jedoch so gut zu bedienen.

Anon.
quelle
8
Wie kann dies eine Antwort sein, wenn & aquot; = "nicht"? Es ist, als würde man einen Doppelpunkt für ein Semikolon vorschlagen ...
RichardTheKiwi
12
@Richardakacyberkiwi Lies die Frage bis zum Ende.
ColBeseder
3
@Anon.: Ist 'jetzt Teil des HTML-Standards .
Paul D. Waite
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.

Zaz
quelle
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".

R. Schreurs
quelle
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
Jeff
quelle
-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

Sabit Rakhim
quelle