web-dev-qa-db-fra.com

Est-il correct d'utiliser des guillemets simples pour les attributs HTML?

Récemment, j'ai vu beaucoup de cela:

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

Est-il valide d'utiliser des guillemets simples en HTML? Comme je l'ai souligné ci-dessus, c'est également problématique car il faut échapper aux apostrophes.

65
Ross

Il est certainement valable d’utiliser des guillemets simples ( HTML 4.01, section 3.2.2 ). Je n'ai pas remarqué une telle tendance, mais il existe peut-être un cadre permettant aux sites Web visités de citer des guillemets simples.

50
Greg Hewgill

Je trouve que l’utilisation de guillemets simples est pratique lors de la génération dynamique de HTML à l’aide d’un langage de programmation qui utilise des littéraux de chaîne de guillemets doubles.

par exemple.

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

Lorsque vous utilisez PHP pour générer du HTML, il peut être plus facile de faire quelque chose comme:

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

que concaténer une chaîne avec une variable avec une chaîne, car PHP analyse les variables dans des chaînes entre guillemets.

12
Dean Rather

Quelqu'un peut l’utiliser dans PHP pour éviter d’échapper "s'ils utilisent une chaîne entre guillemets pour analyser les variables qu'il contient ou pour éviter l’utilisation de l’opérateur de concaténation de chaînes.

Exemple:

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

au lieu de 

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

ou 

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

De nos jours, j'utilise toujours des guillemets doubles pour HTML et des guillemets simples pour Javascript.

4
Imran

C'est plus facile lorsque vous souhaitez intégrer des guillemets doubles.

3
SomeGuy

Dans ASP.NET, il est plus facile d'utiliser des guillemets simples si vous utilisez expressions de liaison de données dans les attributs:

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

Les guillemets simples sont parfaitement légaux en (X) HTML. L'utilisation d'une barre oblique inverse pour leur échapper, d'un autre côté, ne l'est pas. <img src='http://widget-site-example.com/ross.jpg' alt='Ross\'s Widget' /> est une image avec le texte alt "Ross \" et les attributs s et Widget/Widget' vides. La méthode correcte pour échapper à une apostrophe en HTML est &#39;.

2
Ms2ger

En PHP, echo prend de multiples paramètres. Donc, si l’on souhaite omettre l’opérateur de concaténation, il peut faire quelque chose comme et utiliser quand même des guillemets:

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

Les guillemets simples génèrent une page plus nette avec moins d'encombrement. Vous ne devriez pas les échapper dans les chaînes HTML et c'est à vous de choisir ... ma préférence va normalement aux guillemets simples et si j'ai besoin d'inclure un seul guillemet dans la chaîne (par exemple, en tant que délimiteurs d'une chaîne dans la chaîne), J'utilise des guillemets doubles pour l'un et simples pour l'autre.

1
Anthony

Si vous voulez que le html soit valide html4 ou xhtml , alors les deux guillemets simples ou guillemets doubles travaillera pour les attributs. HTML4 peut être validé ici: https://validator.w3.org/

Si vous êtes ne supportant que les navigateurs modernes } _ ( ie10 et supérieur), vous pouvez utiliser la syntaxe html5 qui permet les guillemets simples, doubles et non guillemets (comme tant qu'il n'y a pas de caractères spéciaux dans la valeur des attributs). HTML5 peut être validé ici: https://validator.w3.org/nu _

1
Eric

 SHIFT

0
Snuggs

Vous pouvez également utiliser des guillemets simples dans un autre cas: Stockage de données JSON dans des attributs de données:

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

Les clés d'objet JSON doivent être entre guillemets, de sorte que l'attribut lui-même ne le peut pas.

0
bryc

Qu'y a-t-il contre des guillemets simples? 

Vous pouvez avoir des guillemets simples/doubles sur tout votre code HTML sans aucun problème, tant que vous conservez le même style de citation dans les balises actuelles (de nombreux navigateurs ne s'en plaignent même pas, citation, finissez avec le même, dans la même propriété)

Support gratuit pour les styles de citation aléatoires !!! (oui; D)

0
Joshi Spawnbrood

Je sais que c'est un vieux fil, mais toujours très pertinent. 

Si vous souhaitez contrôler les guillemets dans votre code HTML généré, vous pouvez utiliser la fonction sprintf () dans PHP (et les appels similaires disponibles dans de nombreuses autres langues):

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

L'utilisation de sprintf () permet à la chaîne de format d'être facilement modifiable en la récupérant à partir d'une base de données ou d'un fichier de configuration, ou via des mécanismes de traduction. 

Il est très lisible, et permet des guillemets simples ou doubles dans le code HTML généré, avec très peu de changement et sans échapper:

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