IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

ordonnancement des déclarations [Fait]


Sujet :

CSS

  1. #1
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut ordonnancement des déclarations
    Bonjour à tous,

    J'aurai besoin de vos lumières sur un point précis qui est la prise en compte des déclarations suivant l'ordre dans lequel elle apparaissent. Je m'explique.

    On va prendre un exemple simple. Si je fais une feuille de style pour un formulaire, et que je défini le style suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    fieldset {
      border: 1px solid green;
    }
    alors tous mes fieldset auront une bordure verte. Jusque la, rien de transcendant.

    Mais aprés, je veux changer le style de ce fieldset quand il y a une erreur de saisie et ainsi mettre une bordure rouge. Je fais alors la classe suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    .rouge {
      border: 1px solid red;
    }
    mais celle-ci n'est pas prise en compte ce qui est normal car une bordure est déja définie pour le fieldset. En revanche, si je veux qu'elle soit prise en compte, je peux rajouter le !important.

    C'est justement sur ce point que je voudrai avoir vos lumières. Connaissez vous de bon articles qui parlent de l'utilisation de !important à bon escient ? Quelle est la bonne méthode selon vous pour faire une feuille de style qui soit la mieux structuré et qui ait du sens ?

    Merci à vous.

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 895
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 895
    Points : 16 358
    Points
    16 358
    Par défaut
    Selon le principe de cascades, c'est la règle écrite en dernier qui est appliquée. Cela n'est vrai que lors de la comparaison de déclarations ayant un poids identique.

    Des exemples seront plus parlants :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <style type="text/css">
    .green {
       color : green;
    }
    .red {
       color : red;
    }
    </style>
    <p class="green red">Texte en rouge</p>

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <style type="text/css">
    p.green {
       color : green;
    }
    .red {
       color : red;
    }
    </style>
    <p class="green red">Texte en vert ; le selecteur p.green est plus précis que .red, donc il passe en priorité.</p>

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <style type="text/css">
    #green {
       color : green;
    }
    .red {
       color : red;
    }
    </style>
    <p class="red" id="green">Texte en vert ; le selecteur #green est plus précis que .red, donc il passe en priorité.</p>
    Le modificateur !important permet de passer outre les priorités :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <style type="text/css">
    #green {
       color : green;
    }
    .red {
       color : red !important;
    }
    </style>
    <p class="red" id="green">Texte en rouge ; le modificateur !important permet de passer outre la priorité de l'id.</p>
    J'espère t'avoir éclairé un minimum.

  3. #3
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut
    Merci Bisûnûrs.

    Effectivement, je ne connaissais pas en détail ces règles.

    Du coup, dans mon cas, le !important est bien utilisé on peut dire non ?

    Je ne sais pas si c'est la bonne méthode mais quand je construit ma feuille de style, je la construit normalement en définissant les styles que je veux pour chaque tag, chaque classe et chaque id mais je rajoute aussi à la fin des classe générique que je pourrai attribuer à des éléments dans des situations particulières du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    .centre {
        text-align: center !important;
    }
     
    .droite {
        text-align: right !important;
    }
     
    .gauche {
        text-align: left !important;
    }
     
    .rouge {
        color: red !important;
    }
    est ce une bonne méthode à ton avis ?

    encore merci

    PS: Si tu connais des liens vers de bons articles sur le sujet, je suis preneur

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Points : 1 418
    Points
    1 418
    Par défaut
    Citation Envoyé par pop_up Voir le message
    PS: Si tu connais des liens vers de bons articles sur le sujet, je suis preneur
    A ce sujet il y a le W3C (en anglais) ou alors ce sujet en haut de ce forum

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ordonnancement des tâches en c
    Par Moine dans le forum C
    Réponses: 4
    Dernier message: 12/09/2007, 21h37
  2. CPU CoreDuo : problème d'ordonnancement des taches
    Par karami dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 27/05/2007, 20h07
  3. ordonnancement des numéros des enregistrements
    Par hkarim dans le forum C++Builder
    Réponses: 1
    Dernier message: 19/09/2006, 09h47
  4. [FORMS6i]Ordonnancement des blocs
    Par MomoZeAsticot dans le forum Forms
    Réponses: 2
    Dernier message: 26/07/2006, 16h49
  5. Importance dans l'odre des déclarations ?
    Par laloi dans le forum C
    Réponses: 23
    Dernier message: 20/09/2005, 15h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo