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 :

Définition d'une classe reprenant les propriétés de plusieurs autres classes


Sujet :

CSS

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 37
    Points : 22
    Points
    22
    Par défaut Définition d'une classe reprenant les propriétés de plusieurs autres classes
    Bonjour

    savez vous s'il est possible de définir des sortes de classes mères qui regrouperaient les attributs d'autres classes. Le but étant d'alléger le code.

    Exemple :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" class="classe1 classe2 classe3">

    serait il possible de le réduire en :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" class="masuperclasse">

    et si oui comment définir masuperclasse pour qu'elle représente en fait le cumul des propriétés des classe 1, 2 et 3 ?

    Merci de votre aide, ca parrait tout bête mais je ne trouve pas.
    Cordialement

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Non, ce type d'héritage n'existe pas en CSS.
    En revanche, tu peux faire un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .classe1, .masuperclasse{ ... }
    .classe2, .masuperclasse{ ... }
    .classe3, .masuperclasse{ ... }
    ce qui reviendrait à peu près au même.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    Oui c'est pas bête mais je ne peux pas modifier le fichier CSS ou sont définies mes classes 1, 2 et 3 (issues de jquery).

    Les classes que je souhaite "regrouper sont pour info : ui-button ui-widget ui-state-default ui-corner-all"

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Bah dans ce cas, t'as pas trop de solution alors.
    Ceci dit, dis-toi quand même que s'ils ont fragmenté les classes, c'est pas pour s'amuser à agacer les développeurs mais pour de bonnes raisons.
    Quant au fait "d'alléger le code", ajouter plusieurs classes à un élément, ce n'est pas non plus ce qu'il y a de plus lourd.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    OK merci de ton aide ... je vais me trainer les 4 classes sur chaque bouton, c'est pas bien grave.

    J'aime bien factoriser

    L'avantage est que si je veux changer de style pour mes boutons, je le changeais que dans ma feuille de style a un seul endroit ... et c'est un peu le but de ces feuilles .


    La, je vais devoir fouiller dans tout le code, changer les classes ... avec évidemment le risque d'en oublier et de ne pas avoir un site "uniforme".

    C'est étonnant que cela n'existe pas, cela vous parait adhérant comme besoin ?

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par boyere
    je ne peux pas modifier le fichier CSS ou sont définies mes classes 1, 2 et 3
    Citation Envoyé par boyere
    L'avantage est que si je veux changer de style pour mes boutons, je le changeais que dans ma feuille de style a un seul endroit ...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    mes boutons doivent avoir le style suivant :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" class="ui-button ui-widget ui-state-default ui-corner-all">

    si je veux changer le style de mes boutons par exemple pour qu'ils deviennent :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" class="ui-button ui-widget ui-state-default">

    je dois le changer partout dans mon code html.

    Alors que si j'avais pu le factoriser dans une seule classe que je défini dans une feuille de style qui m'appartient (exemple macss.css), j'aurais un truc magique du type:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    .masuperclasse {
    .ui-button;
    .ui-widget;
    .ui-state-default;
    .ui-corner-all;
    }
    et mon code html deviendrait :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" class="masuperclasse">

    Ainsi si je veux changer le style de mes boutons, je ne dois changer que le contenu du fichier mcss.css (si bien sur j'ai bien mis partout dans mon code que les boutons étaient de classe masuperclasse).

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2014
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Tu peux très bien rassembler toutes les caractéristiques des classes suivantes:

    ui-button
    ui-widget
    ui-state-default

    en une classe appelée masuperclasse qui serait

    .masuperclasse {

    (le contenu des classes énumérées plus haut, en virant les doublons)

    }

    Pour cela, il faut trouver

    .ui-button { ...
    .ui-widget { ...
    .ui-state-default { ...

    dans ton fichier css, copier toutes leurs propriétés, les trier pour ne garder qu'une de chaque, puis copier ce "bloc" dans les crochets de .superclasse

    puis, tu pourras appeler ta classe en utilisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" class="masuperclasse">

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    Oui j'y ai bien sur pensé mais si le contenu de ces classes change apres une mise a jour de mon framework, je devrai mettre a jour moi aussi ma superclasse alors que si j'utilise les leurs directement, je n'ai rien à faire ...

    Bref je vois que ce n'est pas possible, c'est dommage...
    Bonne continuation a tous

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2014
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Hmm je vois.. Tu veux le beurre et l'argent du beurre

    Bon, après, Dreamweaver permet de chercher et remplacer des bouts de code dans des documents qui ne sont pas ouverts... Connais-tu cela?

    Tu peux lui dire

    Chaque fois que tu trouves ce bout de code, remplace-moi

    class="classe1 classe2 classe3"

    en

    class="masuperclasse"

    en lui disant dans quel dossier aller "fouiller". Cela permet de gagner du temps et de ne pas tout modifier manuellement... Par contre si tu testes cela backup tes documents avant, car cela va remplacer TOUTES les occurences..

    Est-ce que cela est une piste?

    Bon courage!

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    Oui c'est aussi une solution ... mais on fait juste "au mieux" ...

    On peut considérer le sujet comme résolu, je vais me débrouiller en bidouillant ...

    merci

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 20/11/2012, 01h01
  2. Réponses: 5
    Dernier message: 07/05/2009, 15h21
  3. Réponses: 6
    Dernier message: 15/09/2008, 22h00
  4. Réponses: 2
    Dernier message: 29/05/2007, 22h48
  5. Réponses: 2
    Dernier message: 29/11/2006, 11h52

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