it-swarm.com.de

Ist es korrekt, einfache Anführungszeichen für HTML-Attribute zu verwenden?

Ich habe kürzlich viel davon gesehen:

<a href='http://widget-site-example.com/example.html'>
    <img src='http://widget-site-example.com/ross.jpg' alt='Ross&#39;s Widget' />
</a>

Ist es zulässig, einfache Anführungszeichen in HTML zu verwenden? Wie ich oben hervorgehoben habe, ist es auch problematisch, weil Sie Apostrophe umgehen müssen.

65
Ross

Es ist sicherlich gültig, einfache Anführungszeichen zu verwenden ( HTML 4.01, Abschnitt 3.2.2 ). Ich habe einen solchen Trend nicht bemerkt, aber vielleicht gibt es ein Framework, das die von Ihnen besuchten Websites unterstützt und die Zitate mithilfe von einfachen Anführungszeichen zitiert.

50
Greg Hewgill

Die Verwendung von einfachen Anführungszeichen ist praktisch, wenn HTML dynamisch generiert wird, indem eine Programmiersprache verwendet wird, die Stringliterale mit doppelten Anführungszeichen verwendet.

z.B.

String.Format("<a href='{0}'>{1}</a>", Url, Desc)
45
Ady

Bei der Verwendung von PHP zum Generieren von HTML kann es einfacher sein, Folgendes zu tun:

$html = "<img src='$url' />";

als Verketten eines Strings mit einer Variablen mit einem String, da PHP Variablen in Strings mit doppelten Anführungszeichen analysiert.

12
Dean Rather

Jemand kann es in PHP verwenden, um das Escapeing zu vermeiden, wenn sie Zeichenfolgen in doppelten Anführungszeichen verwenden, um darin enthaltene Variablen zu analysieren oder die Verwendung eines String-Verkettungsoperators zu vermeiden.

Beispiel:

echo "<input type='text' value='$data'/>";

anstatt 

echo "<input type=\"text\" value=\"$data\" />";

oder 

echo '<input type="text" value="' . $data . '" />';

Heutzutage halte ich immer doppelte Anführungszeichen für HTML und einfache Anführungszeichen für Javascript.

4
Imran

Es ist einfacher, wenn Sie doppelte Anführungszeichen einbetten möchten.

3
SomeGuy

In ASP.NET ist es einfacher, einfache Anführungszeichen zu verwenden, wenn Sie Datenbindungsausdrücke in Attributen verwenden:

<asp:TextBox runat="server" Text='<%# Bind("Name") %>' />
3
Danko Durbić

Einfache Anführungszeichen sind in (X) HTML absolut zulässig. Ein Backslash zu verwenden, um ihnen zu entkommen, ist jedoch nicht der Fall. <img src='http://widget-site-example.com/ross.jpg' alt='Ross\'s Widget' /> ist ein Bild mit dem alten Text "Ross \" und den leeren Attributen s und Widget/Widget'. Der korrekte Weg, um einen Apostroph in HTML zu umgehen, ist &#39;.

2
Ms2ger

In PHP benötigt echo mehrere Parameter. Wenn Sie also den Verkettungsoperator weglassen möchten, könnten Sie so etwas tun und trotzdem doppelte Anführungszeichen verwenden:

echo '<input type="text" value="', $data, '" />';
2
matv

Einfache Anführungszeichen erzeugen eine sauberere Seite mit weniger Unordnung. Sie sollten sie nicht in HTML-Strings umgehen, und Sie haben die Wahl, welche verwendet werden soll ... Meine Präferenz ist normalerweise ein einfaches Anführungszeichen. Ich benutze doppelte Anführungszeichen für eins und einzeln für das andere.

1
Anthony

Wenn Sie möchten, dass html gültig ist html4 oder xhtml , dann funktionieren beide einfache Anführungszeichen oder doppelte Anführungszeichen für Attribute. HTML4 kann hier validiert werden: https://validator.w3.org/

Wenn Sie nur moderne Browser unterstützen ( ie10 und höher), können Sie die html5 -Syntax verwenden, die einfache Anführungszeichen, doppelte Anführungszeichen und keine Anführungszeichen zulässt (sofern keine Sonderzeichen vorhanden sind Zeichen im Attributwert). HTML5 kann hier validiert werden: https://validator.w3.org/nu

1
Eric

 SHIFT

0
Snuggs

Ein weiterer Fall, in dem Sie einfache Anführungszeichen verwenden möchten: JSON-Daten in Datenattributen speichern:

<tr data-info='{"test":true}'></tr>

JSON-Objektschlüssel müssen in doppelte Anführungszeichen gesetzt werden, damit das Attribut selbst nicht möglich ist.

0
bryc

Was ist gegen einfache Anführungszeichen? 

Sie können problemlos einfache oder doppelte Anführungszeichen in Ihrem gesamten HTML-Code verwenden, sofern Sie den gleichen Anführungsstil in aktuellen Tags beibehalten (viele Browser werden sich darüber nicht beschweren, und die Validierung möchte nur, wenn Sie mit einem Zitat, Ende mit dem gleichen, innerhalb des gleichen Anstands)

Kostenlose Unterstützung für zufällige Zitierstile !!! (yay; D)

0

Ich weiß, dass dies ein alter Thread ist, aber immer noch sehr relevant. 

Wenn Sie die Anführungszeichen in Ihrem generierten HTML-Code steuern möchten, können Sie die Funktion sprintf () in PHP (und ähnliche Aufrufe, die in vielen anderen Sprachen verfügbar sind) verwenden:

$html = sprintf('<a href="%s">%s</a>', $url, $text);

Durch die Verwendung von sprintf () kann die Formatzeichenfolge leicht geändert werden, indem sie aus einer Datenbank oder Konfigurationsdatei oder über Übersetzungsmechanismen abgerufen wird. 

Es ist sehr gut lesbar und erlaubt entweder doppelte oder einfache Anführungszeichen in dem generierten HTML-Code, mit sehr geringen Änderungen und niemals mit einem Escape-Befehl:

$html = sprintf("<a href='%s'>%s</a>", $url, $text);
0
leftclickben