[Résolu] le langage par défaut comme classe css pour l'élément body ?

GzygGzyg Member
octobre 2015 modifié dans Modifications
Bonjour,

Serait-il envisageable (dans la prochaine version de PluXml) de définir la langue par défaut comme une classe pour body ?
[== PHP ==]
<body class="<?php $plxShow->defaultLang() ?>">

Ce qui, pour le français, donne un body class="fr" et permet alors de différencier certains éléments typographiques en fonction de la langue, notammment les listes qui sont à puces en anglais et à tirets en français. Et plus si imagination débordante. :)
[== CSS ==]
body.fr ul {
  list-style: none;
}
body.fr ul li:before {
  content: "\2013\202F"; /* typographie française : tiret moyen plus espace fine insécable */
}

Je viens de tester pour un thème en construction et ça fonctionne bien.


à plus,

Gzyg

Réponses

  • Tout dépend de ton thème et ce n'est pas à mon avis une option qui doit être mise par défaut.
  • Bah, à la base un thème est apatride (ou international). On ne fait pas un thème pour tel ou tel pays.
    Le dossier lang contient bien des traductions. Je ne vois pas pourquoi on ne pourrait pas ajouter quelques règles de grammaire. D'autant que ça se fait facilement.

    Après chacun est libre d'écrire en français ou en russe avec de la typo anglo-saxonne ou kirghize. :)


    à plus,

    Gzyg
  • la langue est déjà indiquée dans le thème par défaut dans "html" donc tu devrais déjà pouvoir utiliser une règle dans le genre
    html[lang="fr"] ul li:before
    {
        content : "\2013\202F";
    }
    
  • Aussi, oui. :)

    En fait, d'après le W3C (http://www.w3.org/International/questions/qa-css-lang.en.php) le mieux serait d'appliquer le sélecteur :lang directement sur la balise à styler :
    [== CSS ==]
    ul:lang(fr) {
      list-style: none;
    }
    ul:lang(fr) li:before {
      content: "\2013\202F";
    }
    


    à plus,

    Gzyg
  • ah oui c'est encore mieux avec ":lang()" et dans tous les cas, il n'y a pas besoin de classes en plus pour "body"
  • Tout à fait. :)


    à plus,

    Gzyg
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    Intéressante question.

    Il existe plein de valeurs pour list-style-type et certaines exotiques. Mais la typographie française est ignorée. :(
    Et le débat n'est pas nouveau si on cherche sur Google.
    http://www.w3schools.com/cssref/tryit.asp?filename=trycss_list-style-type_all

    Rappelons que before, comme after sont 2 pseudo-elements donc c'est 2 x ":"
    [== CSS ==]
    ul:lang(fr) li::before { content: "\2013\202F"; }
    
    ou
    [== CSS ==]
    ul:lang(fr) li::before { content: '-'; }
    
    sinon avec une icône
    [== CSS ==]
    ul:lang(fr) { list-style-image: url('dash.png'); }
    

    Merci d'avoir soulevé la question, c'était intéressant.
  • En ce qui concerne les pseudo-éléments :
    MDN a écrit:
    Vous verrez parfois le double deux-points (::) au lieu du simple (:). C'est une partie de CSS3 et une tentative de différencier les pseudo-classes et les pseudo-éléments. La plupart des navigateurs acceptent les deux valeurs.

    https://developer.mozilla.org/fr/docs/Web/CSS/Pseudo-%C3%A9l%C3%A9ments

    J'ai le souvenir d'avoir été embêté avec les deux fois deux points sur certains navigateurs.


    à plus,

    Gzyg
Connectez-vous ou Inscrivez-vous pour répondre.