28173 sujets

CSS et mise en forme, CSS3

Bonjour,

on connaissait les changements de moteur de rendus dans IE (HasLayout, Quirks & co.), mais je viens de découvrir un truc pas très sympa sur Safari (pourtant je l'aime ce navigateur).

Le simple fait de déclarer un charset à la feuille de styles modifie le comportement du CSS et seulement dans certains cas ; ça ressemble plutôt à un bug. Voyez plutôt (page de test, le résultat change très régulièrement). On voit 2 marges à droite et à gauche de la page (en beige clair). Si j'enlève le @charset "utf-8"; de mon fichier ./Css/Layout.css, ces marges disparaissent (c'est le résultat normal). Sur d'autres UAs, on n'a pas ce problème, c'est pour ça que je pensais plutôt à un bug.

Est-il connu ? Une solution ?

Merci Smiley smile .
Modifié par HyWaN (26 Dec 2007 - 22:46)
Euh oui, même IE l'accepte, donc je me suis dis que ... Sinon comment vérifier rapidement ? Mais normalement, oui pas de problèmes.
Bonjour,

Pour deux fichiers CSS sur trois, la règle @charset n'apparait pas en tout début de fichier, mais est précédée d'un (long) commentaire.

Le validateur CSS du W3C signale cette erreur.

Qu'est-ce que ça donne dans Safari après correction?
T'as tapé juste Florent Smiley smile .
Si j'ai une ligne vide ou un commentaire avant le charset, les règles s'appliquent bizarrement. Je place donc le charset avant le commentaire, et c'est bon.

J'aurais du y penser avant, suis-je donc bête. Le charset ne définit pas seulement l'encodage des parties "textes" (url, content etc.) de la feuille, mais également des commentaires. C'est donc incohérent de l'avoir après le commentaire.

Tout va comme sur des roulettes Smiley cligne , merci et bonne année (après Noël, on passe à la nouvelle année ... avec un peu d'avance).

Une dernière question alors. Quand on définit l'encodage de la page (X)HTML, on dit utf-8 par exemple. Doit-on le préciser pour toutes les feuilles et les scripts ensuite ?

Merci Smiley smile .
HyWaN a écrit :
Une dernière question alors. Quand on définit l'encodage de la page (X)HTML, on dit utf-8 par exemple. Doit-on le préciser pour toutes les feuilles et les scripts ensuite ?

Préciser l'encodage des fichiers CSS n'est utile que si tu veux utiliser des noms de classe ou d'identifiants avec des caractères non ASCII, ou si tu génères des contenus via la propriété content. Sinon, ça n'est pas indispensable.

Au passage: on peut déclare l'encodage d'un fichier CSS côté serveur également (comme pour tout fichier texte...).