28173 sujets

CSS et mise en forme, CSS3

Salut, je voudrais savoir s'il est possible de faire ça :
j'ai un 1er style, StyleA :
.StyleA { border:1px solid red; }


puis je créé un 2eme style, StyleB, pour lequel je veux exactement les même propriétés que styleA.
Je peux le faire comme ça:
.StyleB { border:1px solid red; } //les propriétés sont les même... 

Mais là, si un jour je modifie StyleA, il faut surtout que je pense à modifier StyleB de la même manière ... et c'est ça que je ne veux pas !
J'aimerai plutot écrire :
.StyleB { StyleA } // un genre de lien vers StyleA ... 

Comme ça, quand je modifie StyleA, StyleB se met à jour automatiquement car il est "lié" à StyleA.

D'après vous, est-ce que c'est possible d'écrire quelque chose comme ça et si oui comment ?

Merci et bravo pour ce site qui m'à déjà bien aidé à progresser !
Modifié par rip_pit (05 May 2006 - 14:54)
Bonjour,
Puisque les propriétés sont les mêmes et le resteront, a priori, pourquoi pas ceci tout simplement :
.styleA, .StyleB {
   border: 1px solid red;
   } 


Edit --
a écrit :
pourquoi 2 styles?
+1
Modifié par Smiley neko (05 May 2006 - 15:29)
j'ai un style dans un fichier.css:
#TabBordsInt { CertainesProprietes }

à l'époque je l'ai appliqué à toutes les TD de certains tableaux, une par une, et dans de nombreuses pages html :
De nombreux fichiers ont donc cette structure:
<tr>
  <td id="TabBordsInt">cellA</td>
  <td id="TabBordsInt">cellB</td>
<tr>
J'en met qu'une mais j'ai au moins 30 TR par pages et un paquets de pages.html avec ce code


Aujourd'hui, je sais que je peux écrire ça beaucoup plus simplement (mes tableaux conteneurs ont l'ID=MonTablo) :
table#MonTablo td { CertainesProprietes }


Tous mes tableaux avec l'id=MonTablo vont prendre ce style.

Donc dans les nouvelles pages html que je crée, plutot que d'appliquer le 1er style à toutes les TD une par une, j'y associe mon 2eme style qui s'appliquera automatiquement à tous les TD du tableau voulu.
Ca fait que je me retrouve avec des pages écrites d'une façon (style n°1) et d'autres vont venir écrites d'une autre manière (style n°2)

Maintenant, si un jour je dois changer mon style1, ça se repercutera sur les pages "anciennes", mais j'ai peur d'oublier de faire de même sur mon style2, et dans ce cas, j'aurai 2 types d'affichages ancien/nouveau, alors qu'ils doivent être identiques...

Est-ce que je me fais bien comprendre ? c'est assez dur à écrire...

Donc en fait j'aurai aimé associer/lier le style2 directement au style1,
dans ce style: table#MonTablo td { #TabBordsInt }

(Désolé pour la taille du message !)
Modifié par rip_pit (05 May 2006 - 15:51)
Il n'est hélas pas possible, en CSS, d'utiliser une syntaxe telle que
#monId
{
    /* propriétés CSS */
}

#monAutreID
{
    #monId;
}
La seule alternative est, comme il a été dit, d'utiliser la syntaxe
#monId,#monAutreID
{
    /* propriétés CSS */
}

Modifié par Ladytron (05 May 2006 - 17:45)
c'est ce que je voulais savoir, merci Ladytron.
finallement, j'vais être obligé de les définir séparement et sans aucun lien entre eux ...
Modifié par rip_pit (05 May 2006 - 21:33)
Bonjour
Par contre puisque HTML nous permet d'accumuler le style en appel:

<div class=" styleA styleB">--bla bla --</div>

Les styles peuvent s'aglutiner sans problème.
Il te reste à modifier l'un ou l'autre de tes styles sans aucun problème.
Veille cependant à na pas faire d'antinomies et contradictions des styles, un arrière plan style "#000000" n'ira pas pas avec un style "FFFFFF" seul le dernier defini (le dernier appelé) comptera.
Modifié par Aureance (07 May 2006 - 01:06)
rip_pit a écrit :
c'est ce que je voulais savoir, merci Ladytron.
finallement, j'vais être obligé de les définir séparement et sans aucun lien entre eux ...

Ben non, justement !
#TabBordsInt, table#MonTablo td {
	/* Mes propriétés CSS qui s'appliquent aux deux styles */
}

Pour un même jeu d'attributs, on a deux sélecteurs. C'est la magie de la virgule Smiley lol
Modifié par mpop (07 May 2006 - 11:16)