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

736

Ich fühle mich dumm, so lange ein Webprogrammierer gewesen zu sein und die Antwort auf diese Frage nicht zu kennen. Ich hoffe tatsächlich, dass es möglich ist und ich wusste nur nicht, was ich denke, ist die Antwort (was ist, dass es nicht möglich ist). .

Meine Frage ist, ob es möglich ist, 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 }

Was ich gerne machen würde, ist ungefähr so:

.composite 
{
   .something;
   .else
}

Dabei würde die Klasse ".composite" sowohl inline angezeigt als auch einen roten Hintergrund haben

Joel Martinez
quelle
3
Denken Sie mehr über Kaskadierung als über Vererbung nach, es gilt hier nicht
Blu

Antworten:

427

Es gibt Tools wie WENIGER , mit denen Sie CSS auf einer höheren Abstraktionsebene erstellen können , ähnlich wie Sie es beschreiben.

Weniger nennt diese "Mixins"

Anstatt

/* CSS */
#header {
  -moz-border-radius: 8px;
  -webkit-border-radius: 8px;
  border-radius: 8px;
}

#footer {
  -moz-border-radius: 8px;
  -webkit-border-radius: 8px;
  border-radius: 8px;
}

Du könntest sagen

/* LESS */
.rounded_corners {
  -moz-border-radius: 8px;
  -webkit-border-radius: 8px;
  border-radius: 8px;
}

#header {
  .rounded_corners;
}

#footer {
  .rounded_corners;
}
Larsenal
quelle
37
wow, WENIGER ist ziemlich genau das, wonach ich suche ... es ist eine Schande, dass es nicht nativ unterstützt wird und dass es in Ruby geschrieben ist (ich verwende ASP.NET MVC)
Joel Martinez
1
Ja, ich bin auch in der ASP.NET-Welt, also habe ich es nicht in meinen Produktionsworkflow verschoben.
Larsenal
Weniger ist schön und verlockend ... aber ich habe es mit CSSEdit im selben Workflow nicht sehr erfolgreich verwendet - daher habe ich es noch nicht vollständig übernommen.
Ryan Florence
1
Ja, WENIGER ist ziemlich süß, nicht wahr? Ich habe hier tatsächlich an einem .NET-Port gearbeitet: nlesscss.codeplex.com .
Owen
77
Falls Sie dies über Google erreichen: Der .Net-Port ist jetzt hier
Eonasdan
310

Sie können einem einzelnen DOM-Element mehrere Klassen hinzufügen, z

<div class="firstClass secondClass thirdclass fourthclass"></div>

Regeln, die in späteren Klassen angegeben werden (oder die spezifischer sind), werden außer Kraft gesetzt. So fourthclassherrscht in diesem Beispiel die Art vor.

Vererbung ist nicht Teil des CSS-Standards.

Matt Bridges
quelle
12
Wissen Sie, ob welche Klasse die letzte oder die erste Klasse ist und ob das Verhalten browserübergreifend sicher ist? Nehmen wir an, wir haben .firstClass {font-size:12px;} .secondClass {font-size:20px;}dann endgültig font-sizesein 12pxoder 20pxund das ist Cross - Browser sicher?
Marco Demaio
27
Die Regel mit der höchsten Spezifität auf dem Selektor gewinnt. Es gelten Standard-Spezifitätsregeln. In Ihrem Beispiel gewinnt die später im CSS deklarierte Regel, da "first" und "second" dieselbe Spezifität haben.
Matt Bridges
19
Ich mag die Idee, reines CSS (anstelle von WENIGER) zu verwenden, um dieses Problem zu lösen.
Alex
8
Ich mag auch die Idee, nicht mehrere Klassen mehrmals auszutippen - Was ist O (n ^ 2) Arbeit :)
Geheime
3
Was ist, wenn ich eine Drittanbieter-Bibliothek verwende und das von ihr bereitgestellte Design / HTML ändern möchte, aber die eingebauten CSS-Dateien in dieser Bibliothek nicht ändern kann? Dort würde ich eine Art Vererbung in CSS-Klassen brauchen.
Shivam
112

Ja, aber nicht genau mit dieser Syntax.

.composite,
.something { display:inline }

.composite,
.else      { background:red }
mlouro
quelle
7
Das ist scheiße, aber ich bin froh, dass wir das wenigstens haben!
Pacerier
3
Warum ist es scheiße? es scheint sehr gut zu sein. Ich kann den Unterschied zwischen dem Kommasymbol und der less.js-Lösung nicht verstehen.
Revious
21
Denn wenn sich die Klassen .something und .else in unterschiedlichen Dateien befinden und Sie sie nicht ändern können, stecken Sie fest.
Alexandre Mélard
8
Dies war die richtige Antwort, da die Frage mit reiner CSS-Syntax beantwortet wurde. Die weniger Antwort ist jedoch gut zu wissen.
Raddevus
1
Dies sollte die ausgenommene Antwort sein.
eaglei22
66

Halten Sie Ihre gemeinsamen Attribute zusammen und weisen Sie bestimmte Attribute erneut zu (oder überschreiben Sie sie).

/*  ------------------------------------------------------------------------------ */   
/*  Headings */ 
/*  ------------------------------------------------------------------------------ */   
h1, h2, h3, h4
{
    font-family         : myfind-bold;
    color               : #4C4C4C;
    display:inline-block;
    width:900px;
    text-align:left;
    background-image: linear-gradient(0,   #F4F4F4, #FEFEFE);/* IE6 & IE7 */
}

h1  
{
    font-size           : 300%;
    padding             : 45px 40px 45px 0px;
}

h2
{
    font-size           : 200%;
    padding             : 30px 25px 30px 0px;
}
user2990362
quelle
2
Dies kommt einer idealen Lösung sehr nahe. Ich hoffe, die Leute werden sie nicht verwerfen, nur weil sie nur wenige Stimmen erhalten hat. Tatsächlich ist eines der schwierigsten Probleme bei der "CSS-Vererbung", dass Sie normalerweise eine bereits erstellte, riesige Web-Software (z. B. eine E-Commerce- oder eine Blog-PHP-berühmte Software) erhalten und PHP-Code verwenden, der von Haus aus gewonnen hat. t Fügen Sie den ausgegebenen HTML-Elementen mehrere Klassen hinzu. Dies zwingt Sie dazu, sich mit dem Quellcode zu beschäftigen (Änderungen zu verlieren, wenn Sie später ein Upgrade durchführen), damit diese zusätzlichen Klassen ausgegeben werden. Mit diesem Ansatz bearbeiten Sie stattdessen immer nur die CSS-Datei!
Dario Fumagalli
3
Genau das habe ich gesucht. Ist es nichts wert, dass dieser Ansatz auch mit CSS-Selektoren funktioniert? Anstatt anzugeben h1, h2, etc, könnten Sie angeben.selector1, .selector2, .etc
JeffryHouser
Ich wollte kommentieren, dass dies genau der Ansatz ist, den w3 in seinem empfohlenen Standard-HTML- Stylesheet verwendet : [w3 CSS2]: w3.org/TR/CSS2/sample.html . Ich versuche auch zu verstehen, wie CSS-Code organisiert wird, und es scheint, dass das Paradigma im Vergleich zur typischen objektorientierten Vererbung invertiert ist: Sie verwenden Klassen (oder allgemeiner Selektoren), um anzugeben, welche Elemente welche Attribute erben. Sie erben jedoch Attribute (zumindest kann die Hierarchie auf diese Weise am einfachsten logisch existieren) und überschreiben dann bei Bedarf Attribute an den spezifischeren Selektoren.
Nathan Chappell
51

Ein Element kann mehrere Klassen annehmen:

.classOne { font-weight: bold; }
.classTwo { font-famiy:  verdana; }

<div class="classOne classTwo">
  <p>I'm bold and verdana.</p>
</div>

Und das ist ungefähr so ​​nah, wie Sie es leider bekommen werden. Ich würde dieses Feature gerne zusammen mit Klassen-Aliasnamen eines Tages sehen.

Sampson
quelle
45

Nein, so etwas kann man nicht machen

.composite 
{
   .something;
   .else
}

Dies sind keine "Klassennamen" im OO-Sinne. .somethingund .elsesind nur Selektoren nichts mehr.

Sie können jedoch entweder zwei Klassen für ein Element angeben

<div class="something else">...</div>

oder Sie könnten eine andere Form der Vererbung untersuchen

.foo {
  background-color: white;
  color: black;
}

.bar {
  background-color: inherit;
  color: inherit;
  font-weight: normal;
}
<div class="foo">
  <p class="bar">Hello, world</p>
</div>

Wo die Absätze Hintergrundfarbe und Farbe von den Einstellungen im umschließenden div geerbt werden, das .foogestaltet ist. Möglicherweise müssen Sie die genaue W3C-Spezifikation überprüfen. inheritist ohnehin Standard für die meisten Eigenschaften, aber nicht für alle.

Jitter
quelle
1
Ja, dies (erster Teil) war meine Erwartung, als ich im 20. Jahrhundert zum ersten Mal von CSS hörte ... und wir haben es immer noch nicht, sie brennen Leistung auf einigen dynamischen Dingen, während dies statisch komponiert werden kann, kurz bevor das CSS angewendet wird und es ersetzt die Notwendigkeit von Variablen (statische "Variablen")
neu-rah
30

Ich bin auf dasselbe Problem gestoßen und habe schließlich eine JQuery-Lösung verwendet, um den Eindruck zu erwecken, dass eine Klasse andere Klassen erben kann.

<script>
    $(function(){
            $(".composite").addClass("something else");
        });
</script>

Dadurch werden alle Elemente mit der Klasse "zusammengesetzt" gefunden und die Klassen "etwas" und "sonst" zu den Elementen hinzugefügt. So etwas <div class="composite">...</div>wird so enden:
<div class="composite something else">...</div>

DHoover
quelle
1
Das Problem bei dieser Lösung besteht darin, dass sie für alle vorhandenen Steuerelemente gilt. Wenn Sie das Steuerelement nach diesem Aufruf erstellen, verfügt es nicht über die neue Klasse.
LuisEduardoSP
27

Der SCSS- Weg für das gegebene Beispiel wäre ungefähr so:

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

.composite {
  @extend .something;
  @extend .else;
}

Weitere Informationen finden Sie in den Sass-Grundlagen

Alter Lagos
quelle
Was ist der Mehrwert im Vergleich dazu? .composite,.something { display:inline }und.composite,.else { background:red }
Pavel Gatnar
2
@PavelGatnar Sie können die Definitionen von .somethingund .elsein anderen CSS-Definitionen wiederverwenden .
Alter Lagos
16

Das Beste, was Sie tun können, ist dies

CSS

.car {
  font-weight: bold;
}
.benz {
  background-color: blue;
}
.toyota {
  background-color: white;
}

HTML

<div class="car benz">
  <p>I'm bold and blue.</p>
</div>
<div class="car toyota">
  <p>I'm bold and white.</p>
</div>
electricbah
quelle
12

Vergiss nicht:

div.something.else {

    // will only style a div with both, not just one or the other

}
Ryan Florence
quelle
1
Ich suche nicht danach, aber das war konstruktiv für mich n__n
AgelessEssence
7

In der CSS-Datei:

p.Title 
{
  font-family: Arial;
  font-size: 16px;
}

p.SubTitle p.Title
{
   font-size: 12px;
}
pedrofernandes
quelle
2
Was wird das Ergebnis sein font-size?
Abatishchev
Die Schriftgröße für "p.Title" beträgt 12px, da sie nach der ersten in der Datei definiert ist. Es überschreibt die erste Schriftgröße.
YWE
@YWE: Bedeutet das, dass die Erklärungen im Gegensatz zu dem, was in dieser Antwort geschrieben steht, eigentlich umgekehrt sein sollten (zumindest, wenn wir das Beispiel veranschaulichen wollen)? Wenn die zuletzt definierte vorherrscht, font-size: 16pxkann die niemals wirksam werden, oder?
ODER Mapper
@ORMapper - In der Regel befindet sich die erste Deklaration in einer gemeinsamen CSS-Datei, die von mehreren Seiten gemeinsam genutzt wird. Dann befindet sich die zweite Deklaration in einer zweiten CSS-Datei, die nur auf bestimmten Seiten verwendet wird. Und nach der gemeinsamen CSS-Datei importiert . Diese Seiten verwenden also den "zuletzt gesehenen" Wert von 12px.
ToolmakerSteve
7

Mir ist klar, dass diese Frage jetzt sehr alt ist, aber hier geht nichts!

Wenn die Absicht besteht, eine einzelne Klasse hinzuzufügen, die die Eigenschaften mehrerer Klassen impliziert, würde ich als native Lösung die Verwendung von JavaScript / jQuery empfehlen (jQuery ist wirklich nicht erforderlich, aber sicherlich nützlich).

Wenn Sie zum Beispiel haben, .umbrellaClassdass "erbt" von .baseClass1und .baseClass2Sie könnten etwas JavaScript haben, das auf bereit ist.

$(".umbrellaClass").addClass("baseClass1");
$(".umbrellaClass").addClass("baseClass2");

Jetzt haben alle Elemente von .umbrellaClasswill alle Eigenschaften von beiden .baseClasss. Beachten Sie, dass die Vererbung wie die OOP-Vererbung .umbrellaClassmöglicherweise eigene Eigenschaften hat oder nicht.

Die einzige Einschränkung besteht darin, zu prüfen, ob dynamisch Elemente erstellt werden, die beim Auslösen dieses Codes nicht vorhanden sind. Es gibt jedoch auch einfache Möglichkeiten, dies zu umgehen.

Sucks CSS hat jedoch keine native Vererbung.

John Carrell
quelle
1
Dieser Ansatz wurde bereits in der Antwort von @ DHoover aus dem Jahr 2013 vorgeschlagen.
Bryan
6

Perfektes Timing : Ich ging von dieser Frage zu meiner E-Mail, um einen Artikel über Less zu finden , eine Ruby-Bibliothek, die unter anderem Folgendes tut:

Da es super genauso aussieht footer, aber mit einer anderen Schriftart, verwende ich die Klasseneinbeziehungstechnik von Less (sie nennen es ein Mixin), um anzuweisen, dass auch diese Deklarationen enthalten sein sollen:

#super {
  #footer;
  font-family: cursive;
}
RichieHindle
quelle
Gerade als ich dachte, WENIGER könnte mich nicht mehr überraschen ... Ich hatte keine Ahnung, dass Sie Formatierungen aus einem anderen Block wie diesem importieren könnten. Toller Tipp.
Daniel Rippstein
4

Leider bietet CSS keine "Vererbung" wie Programmiersprachen wie C ++, C # oder Java. Sie können eine CSS-Klasse nicht deklarieren und dann um eine andere CSS-Klasse erweitern.

Sie können jedoch mehr als eine einzelne Klasse auf ein Tag in Ihrem Markup anwenden. In diesem Fall gibt es ein ausgeklügeltes Regelwerk, das bestimmt, welche tatsächlichen Stile vom Browser angewendet werden.

<span class="styleA styleB"> ... </span>

CSS sucht nach allen Stilen, die basierend auf Ihrem Markup angewendet werden können, und kombiniert die CSS-Stile aus diesen mehreren Regeln miteinander.

Normalerweise werden die Stile zusammengeführt, aber wenn Konflikte auftreten, gewinnt der später deklarierte Stil im Allgemeinen (es sei denn, das Attribut! Important ist für einen der Stile angegeben. In diesem Fall gewinnt dieser). Stile, die direkt auf ein HTML-Element angewendet werden, haben Vorrang vor CSS-Klassenstilen.

LBushkin
quelle
Ihre Antwort kam als erstes Ergebnis bei Google für mich und war hilfreich. Trotzdem habe ich einen Tipp für Sie: Wenn Sie eine Lösung anbieten, ist es am besten, Sätze nicht negativ zu beginnen (CSS bietet leider keine Vererbung.) Ich weiß, dass jeder mit angemessener Geduld weiterlesen würde, um Ihre nette Lösung zu finden Aber manchmal geht den Menschen die Geduld aus und sie kommen zu dem Schluss, dass das, was sie versuchen, unmöglich ist. Um die beste Chance zu haben, anderen zu helfen, könnten Sie mit etwas wie "CSS hat zwar keine Vererbung, aber Sie können das erreichen, was Sie brauchen, indem Sie ..." beginnen
egmfrs
4

Es gibt auch SASS, das Sie unter http://sass-lang.com/ finden . Es gibt ein @ extend-Tag sowie ein Mix-In-System. (Rubin)

Es ist eine Art Konkurrent von LESS.

chug2k
quelle
4

Das ist in CSS nicht möglich.

Das einzige, was in CSS unterstützt wird, ist spezifischer als eine andere Regel:

span { display:inline }
span.myclass { background: red }

Ein Bereich mit der Klasse "myclass" hat beide Eigenschaften.

Eine andere Möglichkeit besteht darin, zwei Klassen anzugeben:

<div class="something else">...</div>

Der Stil von "else" überschreibt (oder fügt) den Stil von "etwas" hinzu

Philippe Leybaert
quelle
Für alle Stile in einer Datei gibt es eine vererbungsähnliche Lösung in CSS, siehe meinen Beitrag.
Pavel Gatnar
3

Sie können mehr als eine CSS-Klasse auf ein Element anwenden, indem Sie diese Klasse = "etwas anderes" verwenden.

Pete
quelle
3

Wie andere bereits gesagt haben, können Sie einem Element mehrere Klassen hinzufügen.

Aber das ist nicht wirklich der Punkt. Ich bekomme Ihre Frage zur Vererbung. Der eigentliche Punkt ist, dass die Vererbung in CSS nicht über Klassen, sondern über Elementhierarchien erfolgt. Um geerbte Merkmale zu modellieren, müssen Sie sie auf verschiedene Elementebenen im DOM anwenden.

Assaf Lavie
quelle
Es ist besser, vererbungsähnliche CSS-Definitionen zu erstellen, als die gesamte Kompositionsklassenkette zu verwenden (siehe meinen Beitrag).
Pavel Gatnar
2

Ich habe das auch wie verrückt gesucht und es einfach herausgefunden, indem ich verschiedene Dinge ausprobiert habe: P ... Nun, so kannst du es machen:

composite.something, composite.else
{
    blblalba
}

Es hat plötzlich bei mir funktioniert :)

BiBi
quelle
2

Unter bestimmten Umständen können Sie eine "weiche" Vererbung durchführen:

.composite
{
display:inherit;
background:inherit;
}

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

Dies funktioniert nur, wenn Sie die .composite-Klasse einem untergeordneten Element hinzufügen. Es handelt sich um eine "weiche" Vererbung, da alle in .composite nicht angegebenen Werte nicht offensichtlich vererbt werden. Denken Sie daran, es wären immer noch weniger Zeichen, einfach "Inline" und "Rot" anstelle von "Erben" zu schreiben.

Hier ist eine Liste der Eigenschaften und ob sie dies automatisch tun oder nicht: https://www.w3.org/TR/CSS21/propidx.html

Hydrix
quelle
2

Eine direkte Vererbung ist zwar nicht möglich.

Es ist möglich, eine Klasse (oder ID) für ein übergeordnetes Tag zu verwenden und dann CSS-Kombinatoren zu verwenden, um das Verhalten von untergeordneten Tags aus der Hierarchie zu ändern.

p.test{background-color:rgba(55,55,55,0.1);}
p.test > span{background-color:rgba(55,55,55,0.1);}
p.test > span > span{background-color:rgba(55,55,55,0.1);}
p.test > span > span > span{background-color:rgba(55,55,55,0.1);}
p.test > span > span > span > span{background-color:rgba(55,55,55,0.1);}
p.test > span > span > span > span > span{background-color:rgba(55,55,55,0.1);}
p.test > span > span > span > span > span > span{background-color:rgba(55,55,55,0.1);}
p.test > span > span > span > span > span > span > span{background-color:rgba(55,55,55,0.1);}
p.test > span > span > span > span > span > span > span > span{background-color:rgba(55,55,55,0.1);}
<p class="test"><span>One <span>possible <span>solution <span>is <span>using <span>multiple <span>nested <span>tags</span></span></span></span></span></span></span></span></p>

Ich würde nicht vorschlagen, so viele Bereiche wie im Beispiel zu verwenden, aber es ist nur ein Proof of Concept. Es gibt immer noch viele Fehler, die auftreten können, wenn Sie versuchen, CSS auf diese Weise anzuwenden. (Zum Beispiel Ändern von Textdekorationstypen).

Stryderunknown
quelle
2

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

Sass verfügt über eine Erweiterungsoption, mit der eine Klasse vollständig auf eine andere erweitert werden kann. Weitere Informationen zu Extend finden Sie in diesem Artikel

Nesha Zoric
quelle
1

CSS macht nicht wirklich das, was Sie verlangen. Wenn Sie Regeln für diese zusammengesetzte Idee schreiben möchten, sollten Sie den Kompass überprüfen . Es ist ein Stylesheet-Framework, das dem bereits erwähnten Less ähnelt.

Damit können Sie Mixins und all das gute Geschäft machen.

Zack der Mensch
quelle
Compass aka Sass fügt über Extend, PlaceHolders Mixins vs Extend weitere Details hinzu, detailliertere Informationen über PlaceHolders
Abhijeet
1

Für diejenigen, die mit den genannten (ausgezeichneten) Beiträgen nicht zufrieden sind, können Sie Ihre Programmierkenntnisse nutzen, um eine Variable (PHP oder was auch immer) zu erstellen und die mehreren Klassennamen speichern zu lassen.

Das ist der beste Hack, den ich mir vorstellen kann.

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

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

Wenden Sie dann die globale Variable auf das gewünschte Element an und nicht auf die Klassennamen selbst

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

Stellen Sie sich CSS- Klassen nicht als objektorientierte Klassen vor, sondern als bloßes Werkzeug unter anderen Selektoren, um anzugeben, nach welchen Attributklassen ein HTML-Element gestaltet ist. Stellen Sie sich alles zwischen den geschweiften Klammern als Attributklasse vor , und Selektoren auf der linken Seite teilen den Elementen mit, dass sie Attribute von der Attributklasse erben sollen . Beispiel:

.foo, .bar { font-weight : bold; font-size : 2em; /* attribute class A */}
.foo { color : green; /* attribute class B */}

Wenn ein Element des Attribut gegeben ist class="foo", ist es sinnvoll , daran zu denken nicht als Attribut von Klasse zu erben .foo, sondern von Attributklasse A und Attributklasse B . Das heißt, der Vererbungsgraph ist eine Ebene tief, wobei Elemente aus Attributklassen stammen und die Selektoren angeben, wohin die Kanten gehen, und den Vorrang bestimmen, wenn konkurrierende Attribute vorhanden sind (ähnlich der Reihenfolge der Methodenauflösung).

Geben Sie hier die Bildbeschreibung ein

Die praktische Implikation für die Programmierung ist dies. Angenommen, Sie haben das oben angegebene Stylesheet und möchten eine neue Klasse hinzufügen .baz, in der sie dieselbe haben sollte font-sizewie .foo. Die naive Lösung wäre folgende:

.foo, .bar { font-weight : bold; font-size : 2em; /* attribute class A */}
.foo { color : green; /* attribute class B */}
.baz { font-size : 2em; /* attribute class C, hidden dependency! */}

Geben Sie hier die Bildbeschreibung ein

Jedes Mal, wenn ich zweimal etwas tippen muss, werde ich so wütend! Ich muss es nicht nur zweimal schreiben, jetzt kann ich das nicht programmatisch anzeigen .foound .bazsollte es auch haben font-size, und ich habe eine versteckte Abhängigkeit geschaffen! Mein obiges Paradigma würde vorschlagen, dass ich das font-sizeAttribut aus der Attributklasse A abstrahieren sollte :

.foo, .bar, .baz { font-size : 2em; /* attribute base class for A */}
.foo, .bar { font-weight : bold; /* attribute class A */}
.foo { color : green; /* attribute class B */}

Geben Sie hier die Bildbeschreibung ein

Die Hauptbeschwerde hier ist, dass ich jetzt jeden Selektor aus der Attributklasse A erneut eingeben muss, um anzugeben, dass die Elemente, die sie auswählen sollen, auch Attribute aus der Attributbasisklasse A erben sollen . Die Alternativen bestehen jedoch darin, sich daran zu erinnern, jede Attributklasse zu bearbeiten, in der bei jeder Änderung versteckte Abhängigkeiten bestehen, oder ein Drittanbieter-Tool zu verwenden. Die erste Option bringt Gott zum Lachen, die zweite bringt mich dazu, mich umzubringen.

Nathan Chappell
quelle
0

Wenn Sie einen leistungsstärkeren Textvorprozessor als WENIGER wünschen, lesen Sie den PPWizard:

http://dennisbareis.com/ppwizard.htm

Die Warnung, dass die Website wirklich abscheulich ist und eine kleine Lernkurve aufweist, eignet sich jedoch perfekt zum Erstellen von CSS- und HTML-Code über Makros. Ich habe nie verstanden, warum mehr Webcodierer es nicht verwenden.

BloDoe
quelle
11
Die Website ist wirklich schrecklich.
Nanofarad
Ein bisschen ironisch auf einer Website für einen HTML-Prozessor!
Ben Thurley
2
Ja, die Website ist abscheulich, aber es ist mehr als nur das. Es ist schwer zu lesen und mein Kopf tut auch weh!
ArtOfWarfare
1
Eine gute Sache, dass es mit Windows 3.1 bis XP kompatibel ist, lol
Alter Lagos
Ein bizarres, nicht standardmäßiges Tool.
Berkus
-6

Sie können erreichen, was Sie wollen, wenn Sie Ihre .css-Dateien über PHP vorverarbeiten. ...

$something='color:red;'
$else='display:inline;';
echo '.something {'. $something .'}';
echo '.else {'. $something .'}';
echo '.somethingelse {'. $something  .$else '}';

...

John
quelle