917 Stimmen

Kann eine CSS-Klasse eine oder mehrere andere Klassen erben?

Ist es möglich, eine CSS-Klasse zu erstellen, die von einer anderen CSS-Klasse (oder mehreren) "erbt".

Nehmen wir zum Beispiel an, wir hätten:

.something { display:inline }
.else      { background:red }

Ich würde gerne etwas in dieser Art machen:

.composite 
{
   .something;
   .else
}

wo die Klasse ".composite" sowohl inline als auch mit rotem Hintergrund angezeigt würde

4 Stimmen

Denken Sie eher an Kaskadierung als an Vererbung, das trifft hier nicht zu

1 Stimmen

0 Stimmen

Vielleicht Duplikat von stackoverflow.com/questions/25381072/

2voto

BiBi Punkte 21

Ich habe auch wie verrückt danach gesucht und bin nur durch Ausprobieren auf die Lösung gekommen :P... Na ja, man kann es auch so machen:

composite.something, composite.else
{
    blblalba
}

Bei mir hat es plötzlich funktioniert :)

2voto

Nesha Zoric Punkte 5358

Less und Sass sind CSS-Präprozessoren, die die CSS-Sprache auf wertvolle Weise erweitern. Eine der vielen Verbesserungen, die sie anbieten, ist genau die Option, nach der Sie suchen. Es gibt einige sehr gute Antworten mit Less und ich werde Sass Lösung hinzufügen.

Sass verfügt über die Option extend, mit der eine Klasse vollständig auf eine andere erweitert werden kann. Mehr über extend können Sie lesen in diesem Artikel

2voto

miquelvir Punkte 1637

Ich denke, dass dies eine bessere Lösung ist:

[class*=“button-“] {
  /* base button properties */
}
.button-primary { ... }
.button-plain { ... }

1voto

Shakir Punkte 255

Wem die genannten (ausgezeichneten) Beiträge nicht genügen, der kann seine Programmierkenntnisse nutzen, um eine Variable zu erstellen (PHP oder was auch immer) und darin die verschiedenen Klassennamen zu speichern.

Das ist der beste Hack, der mir eingefallen ist.

<style>
.red { color: red; }
.bold { font-weight: bold; }
</style>

<? define('DANGERTEXT','red bold'); ?>

Dann wenden Sie die globale Variable auf das gewünschte Element an und nicht auf die Klassennamen selbst

<span class="<?=DANGERTEXT?>"> Le Champion est Ici </span>

1voto

Zack The Human Punkte 8252

CSS ist nicht wirklich tun was Sie fragen. Wenn Sie Regeln mit dieser zusammengesetzten Idee im Hinterkopf schreiben wollen, sollten Sie sich Folgendes ansehen Kompass . Es handelt sich um ein Stylesheet-Framework, das dem bereits erwähnten Less ähnlich ist.

Man kann damit Mixins und all diese guten Dinge tun.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X