28172 sujets

CSS et mise en forme, CSS3

Bonjour,

Mon principal obstacle à l'utilisation du XHTML 1.1 est que je ne me souviens jamais comment styler xml:lang (lang n'étant plus valide en XHTML 1.1)

Pourriez-vous me dire comment transcrire cette règle en CSS :

a écrit :
Si le texte n'est pas dans la langue du document, le mettre en italique.


Je suppose que la réponse fera intervenir le pseudo-selecteur not (CSS3, mais ça me va) et une spécificité exotique de CSS pour sélectionner xml:lang.

Merci pour vos réponses.
Salut,

David Latapie a écrit :
Mon principal obstacle à l'utilisation du XHTML 1.1 est que [...]
Le mien est que je ne fais jamais du vrai xml. Smiley murf

David Latapie a écrit :
Pourriez-vous me dire comment transcrire cette règle en CSS :
Si le texte n'est pas dans la langue du document, le mettre en italique.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
<style type="text/css">
html:lang(fr) *:not(:lang(fr)), html:lang(en) *:not(:lang(en)) {
	font-style: italic;
}
</style>
</head>
<body>
<p>Ce n'est pas difficile de parler français... c'est fastoche !</p>
<p lang="en">It's not difficult to speak english... it's facult !</p>
<p>Du contenu en français...</p>
</body>
</html>
Voir les sélecteurs CSS 3 et notamment la pseudo-classe :lang.
Je n'avais pas du tout pensé à l'imbrication de règles (je me serais arrêté à un *:not(:lang(fr))). Merci de l'idée !

Sais-tu s'il est possible d'abstraire un peu plus la règle, genre

<style type="text/css">
html:lang(fr) *:not(:lang(baselanguage)) {font-style:italic}
</style>


(c'est de « baselanguage » que je parles)

À part ça, je souhaite appliquer la même règle à xml:lang, mais simplement remplacer lang par xml:lang ne fonctionnera pas (du fait du deux-points). Une idée ?

Merci déjà pour ce que tu as écris !
- Il me semble qu'utiliser xml:lang fonctionnera avec le sélecteur CSS :lang(), du moment que ton document est bien un document XML (XHTML servi en application/xhtml+xml, notamment), et pas du HTML déguisé.

- Il n'y a pas de moyen en CSS pour récupérer la valeur de l'attribut lang dans <html lang="..."> ou <html xml:lang="...">, pour ensuite utiliser cette valeur dans tes sélecteurs CSS.

- Pour ma part, quand j'ai une phrase ou une locution dans une langue différente de la langue du contenu principal, et que je veux afficher ce texte en italique pour suivre les conventions typographiques, j'utilise <i lang="...">...</i>.
A savoir: vu le support actuel d'xml:lang dans les lecteurs d'écran, un document qui ne précise pas d'attribut lang sera fréquemment non accessible...
Laurent Denis a écrit :
A savoir: vu le support actuel d'xml:lang dans les lecteurs d'écran, un document qui ne précise pas d'attribut lang sera fréquemment non accessible...


Je n'y avais pensé ! Merci Laurent.