2010-12-30 15 views

risposta

38

Non possibile con vaniglia CSS. Tuttavia è possibile usare qualcosa come:

Sass rende nuovo divertente CSS. Sass è un'estensione del CSS3 , che aggiunge le regole nidificate , le variabili, il mixin, il selettore e altro ancora. E 'tradotto in CSS standard ben formattato usando lo strumento da riga di comando o un plugin per framework web .

O

Piuttosto che costruire il selettore lunghi nomi per specificare eredità, in meno si può semplicemente selettori nido all'interno altri selettori. Ciò rende più breve l'ereditarietà e i fogli di stile .

Esempio:

#header { 
    color: red; 
    a { 
    font-weight: bold; 
    text-decoration: none; 
    } 
} 
+0

bene. Grazie. Comunque sto usando JQuery, quindi lo userò. Speravo solo di usare CSS perché, se aggiungo dinamicamente un altro pice di html con class2, ad esempio, quella classe verrebbe collegata al nuovo html, dove come con Jquery devo aggiungerlo manualmente dopo aver aggiunto l'html – kralco626

+4

Cosa fa jQuery c'entra? Stai suggerendo di caricare il tuo pre-processore css in jQuery? – moopet

4
Non

direttamente. Ma puoi usare estensioni come LESS per aiutarti a raggiungere lo stesso risultato.

+0

ok. Grazie. Comunque sto usando JQuery, quindi lo userò. Speravo solo di usare css perché, se aggiungo dinamicamente un altro pice di html con class2, ad esempio, quella classe verrebbe collegata al nuovo html, dove come con Jquery devo aggiungerlo manualmente dopo aver aggiunto l'html. – kralco626

31

Non con puro CSS. L'equivalente più vicino è questo:

.class1, .class2 { 
    some stuff 
} 

.class2 { 
    some more stuff 
} 
2

No.

È possibile utilizzare grouping selectors e/o più classi in un unico elemento, oppure è possibile utilizzare un linguaggio e di processo modello con il software per scrivere il CSS.

Vedere anche il mio articolo su CSS inheritance.

0

Non credo sia possibile. È possibile aggiungere class1 a tutti gli elementi che hanno anche class2. Se questo non è pratico da fare manualmente, puoi farlo automaticamente con JavaScript (abbastanza facile da fare con jQuery).

15

Aggiornamento: Esiste una specifica CSS3 per il nesting di livello 3 CSS. Attualmente è una bozza. https://tabatkins.github.io/specs/css-nesting/

Se approvata, la sintassi sarebbe simile a questa:

table.colortable { 
    & td { 
    text-align:center; 
    &.c { text-transform:uppercase } 
    &:first-child, &:first-child + td { border:1px solid black } 
    } 
    & th { 
    text-align:center; 
    background:black; 
    color:white; 
    } 
} 
+0

Penso che nessuno abbia visto questo post ma, grande notizia, amico ... Davvero. –

0

Prova questa ...

Dare l'elemento di un ID, e anche un nome di classe. Quindi puoi annidare il #IDName.className nel tuo CSS.

Ecco una spiegazione migliore https://css-tricks.com/multiple-class-id-selectors/

+1

Com'è utile? Non ti permette di estendere una regola CSS, che è ciò che la domanda sta ponendo, e non c'è alcun vantaggio nell'usare un ID con una classe invece di usare semplicemente più classi. – moopet