Namespacing / Scoping in CSS
Frage
Ich mag die Regeln in einer CSS-Datei zu einer bestimmten div / Klasse anzuwenden, so zum Beispiel wird der Inhalt des events.css nur auf den Inhalt einer Klasse namens .events angewandt und nicht außerhalb dieses Umfang, ohne die Notwendigkeit die Klasse .events zu Beginn jeder CSS-Regel hinzuzufügen.
Ich denke dies aber nicht möglich ist - aber man weiß ja nie
.Wenn ich nicht die gleiche Wirkung zu erzielen denke durch die .events an die CSS-Regeln voran, nachdem sie hochgeladen / bearbeitet wurden. Ich denke das sollte ziemlich störungsfrei sein, aber hat forsee jemand irgendwelche Probleme?
Lösung
Ich denke dies aber nicht möglich ist,
der Tat. Sofern Sie die betreffenden Inhalte in einem Iframe setzen. Dann erhalten Sie ein ganzes separates Dokument anders stylen.
Ich denke die gleiche Wirkung zu erzielen, indem sie die .events an die CSS-Regeln voran, nachdem sie hochgeladen / bearbeitet wurden. Ich denke das sollte ziemlich störungsfrei sein, aber hat forsee jemand irgendwelche Probleme?
In einer automatisierten Weise? Sie würden müssen in der Lage sein, den CSS-Eingang zu analysieren, um zu bestimmen, wo die Anfänge der Wähler waren.
Das ist nicht so trivial, wie man richtig tun könnte denken:
/* This is my grate CSS
.sausage { color: red; } adds a class rule
/*/ .eggs, .bacon { color: red; }
.potato:before { content: "; }
.beans { content: "; }
ist ein Beispiel für tricky-to-Parse-CSS. .eggs
, .bacon
und .potato
beginnen Selektoren und würde ein .events
Präfix wollen. .sausage
und .beans
ist es nicht.
Andere Tipps
Wenn nicht ich denke das zu erreichen, gleiche Wirkung durch die .events prefixing nachdem sie in den CSS-Regeln haben hochgeladen / bearbeitet. Ich denke dies sollte ziemlich störungsfrei sein, aber forsee hat jemand irgendwelche Probleme?
Das ist der einzige Weg, es zu tun und sollte in Ordnung sein.
Es ist sicherer, aus einem Wartungs Standpunkt zu einfach „.Event“ in Ihren CSS-Regeln enthalten. Mehrere Monate auf der Straße, haben Sie die Tricks vergessen Sie hier spielte ein wenig Tipparbeit zu sparen.
Kurz gesagt, der einzige Weg ist, jede Regel mit .events
Präfix.
Aber ich würde steuern weg von der automatisch tun, weil es einfach, Fehler zu machen, wie das Hinzufügen von .events
einer Regel manuell, was es verdoppeln würde. Und wenn Sie einige Arten über mehrere Seiten, wie .events.special
und .aboutus.special
dann teilen wollte müssen Sie würden sie woanders setzen.
Es ist im Allgemeinen besser ein Sheet pro Abschnitt anstelle eines zu verwenden, so dass der Benutzer wird es zwischengespeichert, wenn sie auf den folgenden Seiten gehen. (Sie können es in der Produktionsumgebung minify und gzip anfängliche Downloadzeit zu reduzieren.)
Ich würde die Klasse‘.events' zu der Auswahl hinzuzufügen. Es besteht die Gefahr menschlicher Fehler tun dies als ein manueller Prozess. Hier ist eine Möglichkeit, teilweise Automatisierung des Prozesses eines Wählers für alle CSS Hinzufügen von Klassen .
Alternativ können Sie dieses automatische prefixer , aber es scheint nicht Räume zwischen handhaben Ihre Wähler gut.