2010-12-30 42 views

Antwort

38

Nicht möglich mit Vanille CSS.

Sass macht CSS wieder Spaß: Aber Sie so etwas wie verwenden können. Sass ist eine Erweiterung von CSS3, verschachtelte Regeln, Variablen, Mixins, Selektor Vererbung und vieles mehr. Es ist in gut formatiert, Standard-CSS mit das Befehlszeilenprogramm oder ein Web-Framework-Plugin übersetzt.

Oder

Anstatt lange Wähler Namen konstruieren Erbe zu spezifizieren, in weniger können Sie einfach Nest Selektoren innerhalb anderen Selektoren. Dies macht Vererbung klar und Stylesheets kürzer.

Beispiel:

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

in Ordnung. Vielen Dank. Ich benutze sowieso JQuery, also werde ich das verwenden. Ich habe nur gehofft, css zu benutzen, denn wenn ich dann dynamisch ein anderes html mit class2 hinzufüge, würde diese Klasse zum Beispiel an das neue html angehängt werden, wo ich es wie bei Jquery manuell nach dem html hinzufügen muss: – kralco626

+4

Was macht jQuery hat damit zu tun? Schlägst du vor, deinen eigenen CSS-Preprozessor in jQuery zu betreiben? – moopet

4

Nicht direkt. Aber Sie können Erweiterungen wie LESS verwenden, um Ihnen das gleiche zu erreichen.

+0

in Ordnung. Vielen Dank. Ich benutze sowieso JQuery, also werde ich das verwenden. Ich hatte nur gehofft, css zu benutzen, denn wenn ich dann dynamisch ein weiteres Stück html mit class2 hinzufüge, würde diese Klasse zum Beispiel an das neue html angehängt werden, wo ich es wie bei Jquery manuell hinzufügen muss, nachdem ich das html hinzugefügt habe. – kralco626

31

Nicht mit reinem CSS. Das nächstgelegene entspricht dies:

.class1, .class2 { 
    some stuff 
} 

.class2 { 
    some more stuff 
} 
2

Nr

können Sie grouping selectors verwenden und/oder mehrere Klassen auf einem einzigen Element, oder Sie können eine Template-Sprache und verarbeiten sie mit Software benutzen, um Ihre CSS zu schreiben.

Siehe auch meinen Artikel auf CSS inheritance.

0

Ich glaube nicht, dass das möglich ist. Sie könnten class1 zu allen Elementen hinzufügen, die auch class2 haben. Wenn dies manuell nicht möglich ist, können Sie dies automatisch mit JavaScript tun (relativ einfach mit jQuery).

15

Aktualisierung: Es gibt eine CSS3-Spezifikation für CSS-Level 3-Verschachtelung. Es ist derzeit ein Entwurf. https://tabatkins.github.io/specs/css-nesting/

Sollte diese genehmigt werden, würde die Syntax wie folgt aussehen:

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

Ich glaube, niemand hat diesen Beitrag gesehen, aber, große Aufmerksamkeit Mann ... Wirklich. –

0

Try this ...

Geben Sie dem Element eine ID, und auch der Name einer Klasse. Dann können Sie den #IDName verschachteln.Klassenname in Ihrem CSS.

Hier ist eine bessere Erklärung https://css-tricks.com/multiple-class-id-selectors/

+1

Wie ist das hilfreich? Es erlaubt Ihnen nicht, eine CSS-Regel zu erweitern, was die Frage ist, und es hat keinen Vorteil, eine ID mit einer Klasse zu verwenden, anstatt nur mehrere Klassen zu verwenden. – moopet

Verwandte Themen