Purtroppo si può fare questo in puro CSS, per impostazione predefinita l'elemento figlio non eredita la width
, è necessario specificare Sì, per impostazione predefinita si estenderà al 100% se si utilizza un elemento a livello di blocco come un tag div
o p
ma inorder su ereditare (ri uso) di proprietà del nonno è possibile utilizzare processori CSS pre piace di meno o SASS ..
Quindi, se si vuole fare questo in SASS possiamo fare qualcosa di simile
.a {
width: 600px;
}
.b {
width: 80%;
}
.c {
@extend .a;
//This is still not an inheritance, you are simply pulling in all the
//properties defined in .a to this class
}
Così qui sceglierà tutte le proprietà da .a
a .c
. Ma qui è un fermo, quando si utilizza .
notazione SASS, verrà letteralmente stampare il blocco .a
pure, quindi se si desidera utilizzare solo per @extend
scopo, è possibile scrivere questo selettore invece
%a {
width: 600px;
}
.c {
@extend %a;
}
Qui SASS non stampa .a
più ma solo .c
.Se possibile consultare la documentazione ufficiale per più sopra SASS @extend
è inoltre possibile definire le variabili in SASS definendo così uno con $base-width: 600px;
e re di utilizzarlo in tutta può avere senso pure. Se vuoi continuare a utilizzare il CSS tradizionale, ti consiglio di dichiarare più classi come suggerito da Manoj, ma non lo farei come se dichiarassi proprietà in .a
e lo stesso in .c
le cose inizieranno a diventare disordinate.
fonte
2015-07-04 07:41:06
mi consiglia di utilizzare una variabile: '$ larghezza: 600px;' e '. C {larghezza: $ larghezza; } 'over' @ extend' in quanto quest'ultimo può avere conseguenze inaspettate e ingannevoli –
Stavo per scriverlo nella mia risposta, ma penso che probabilmente si perderà –
xD L'ho scritto prima e l'ho rimosso, quindi pensato di aggiungerlo di nuovo solo perché è anche uno dei modi migliori per gestire tali cose –