In den letzten Jahren haben HTML5 und CSS3 unsere Welt und unseren Ansatz für gängige Website-Probleme revolutioniert. Alle paar Tage scheint es eine neue ausgefallene Snippet oder einen neuen Ansatz zu geben, der alles verändert. Heute könnte einer dieser Tage sein (irgendwie).
Eine wenig bekannte Funktion von HTML5 ist Scoped CSS. Es ist ein Attribut für Style-Blöcke, das die Art und Weise, wie wir bestimmte Styling-Herausforderungen in Zukunft angehen, verändern könnte.
Update: Soweit ich weiß, wurde <style scoped> aus den Spezifikationen entfernt, und selbst Browser, die es unterstützten, haben es wieder entfernt. Selbst während ich dieses Update schreibe (August 2017) sind Scoped Styles wohl beliebter und begehrter denn je. Vue-Dateien unterstützen das Konzept genauso, wie hier beschrieben, und es tauchen viele andere Bibliotheken auf, die das Konzept unterstützen. Native Browser denken wahrscheinlich über Shadow DOM als wahrscheinlichen Ersatz für diese Idee nach.
Die Implementierung des Scoping ist einfach. Betrachten wir einige Codes auf einer ansonsten ungestylten Seite, auf der alle Texte standardmäßig schwarz sind.
<div>
<style scoped>
h1 { color: FireBrick; }
p { color: SaddleBrown; }
</style>
<h1>This is an H1 in a scoped div. Regardless of global styles the text should be "FireBrick".</h1>
<p>This is a paragraph in a scoped div. The text should be "SaddleBrown".</p>
</div>
<p>This is another paragraph, that will unaffected by the scoped style and remain black.</p>
Der style-Block mit dem scoped-Attribut überschreibt die globalen Stile, die sich normalerweise im head befinden (entweder in einem Style-Block oder in einem verknüpften Stylesheet), jedoch nur für die Geschwister-/Nachfahrenelemente innerhalb desselben Elternelements. In diesem Beispiel erhalten alle Elemente innerhalb des umgebenden Divs eine neue Überschriften- und Absatzfärbung. Wie w3.org es ausdrückt: „Wenn das Attribut
scoped vorhanden ist, muss der User-Agent die angegebenen Stilinformationen nur auf das Elternelement des Style-Elements (falls vorhanden) und die Kindknoten dieses Elements anwenden.“

Das ist erstaunlich! Während alle anderen Texte auf der Seite schwarz sein mögen, können wir innerhalb dieses Divs frei stylen, ohne uns darum kümmern zu müssen, die Stile ähnlicher Elemente irgendwo anders auf unserer Website zu ändern. Dies kann ein sehr mächtiges Werkzeug sein.
Warum ist das cool?
„Aber Arley“, sagen Sie, ein Bindewort am Satzanfang, „warum nicht einfach eine Klasse oder eine ID für dieses Div verwenden und wie #foo h1 und #foo p stylen? Sind das nicht nur organisierte Inline-Stile?“ Es gibt eine Reihe von Gelegenheiten, bei denen Scoped CSS eine gute Option unter bestimmten Umständen ist.
- Es kann wünschenswert sein, das CSS eines bestimmten interaktiven Elements mit dem HTML zusammenzuhalten. Wenn das betreffende Element auf der Website einzigartig ist (wie z. B. ein komplexer Schieberegler), hat es keinen Vorteil, es mit globalen Stilen zu cachen.
- Das CSS zur Organisation mit dem HTML kann jedoch Wert haben.
- Bei der Arbeit in einem Team kann dies eine großartige Möglichkeit sein, die gleichzeitige Entwicklung verschiedener Bereiche der Website zu ermöglichen, ohne sich um den Zustand des globalen CSS kümmern zu müssen – ich sehe dies als kurzfristige Lösung.
- Wenn Ihr Artikel von einer anderen Website aggregiert wird, ist es möglich, Stile auf einer anderen Website anzupassen, die sonst außerhalb der Reichweite Ihres globalen Stylesheets liegen würden.
- Wenn Sie Tags im Kommentarbereich Ihrer Website aktivieren, können Sie Ihren Lesern die Möglichkeit geben, ihre eigenen Stile zu gestalten... egal, das ist wahrscheinlich eine schreckliche Idee.
- Zur Verwendung in Widgets auf Websites von Drittanbietern, bei denen das CSS unbekannt ist und die Stile innerhalb des Widgets nirgendwo sonst beeinflussen sollten. Allerdings ist die Möglichkeit, die Stile innerhalb des Widgets zurückzusetzen, die andere Hälfte dieser Schlacht.
- Zuletzt (und für mich am aufregendsten) ist Scoped CSS ideal für die Arbeit mit Content-Management-Systemen, bei denen Sie viel weniger Flexibilität haben, um einzigartigen Markup zu gemeinsamen, vorlagenbasierten Bereichen hinzuzufügen, oder keinen Zugriff auf die vorhandenen Stylesheets haben.
Ich möchte die Vorteile von CMS im Detail besprechen.
Arbeiten mit einem CMS
Wenn wir eine Website in einem CMS erstellen, schaffen wir Einschränkungen, um die Wiederverwendbarkeit von Elementen und Vorlagen zu gewährleisten und die Konsistenz der gesamten Website zu erhalten. CMS sind das perfekte Werkzeug, um jemanden, der weniger technisch versiert ist als Sie, Inhalte erstellen und verwalten zu lassen, ohne Angst haben zu müssen, Website-Komponenten zu beschädigen. Eine Einschränkung eines CMS kann die Unfähigkeit sein, einmalige Anpassungen für einzigartige Bereiche vorzunehmen.
Ich hatte dieses Problem, als ich mit einem CMS auf Unternehmensebene arbeitete. Basierend auf den ursprünglichen Entwürfen und dem Umfang der Website haben wir das CMS so aufgebaut, dass es einheitlich und konsistent aussieht. Einige Monate nach dem Start entstand ein Bedarf an mehr Flexibilität: die Einführung einer zweiten, ausführlicheren Sprache und spezielle Kampagnen führten zu neuen Herausforderungen für das Styling.
Meine erste Herausforderung bestand darin, einen größeren Textblock zu gestalten (Fun Fact: Die Faustregel für Designer bei der Gestaltung für zweisprachige Inhalte in Kanada ist, zusätzliche 50 % Platz einzuplanen, wenn das Design auf Französisch sein soll!). Ich sah mir meine Seiten an und ich sah mir meine Stylesheets an: Selbst die kleinste Änderung, die ich vorgenommen hätte, würde Stunden des Testens und der Qualitätssicherung auf der gesamten Website bedeuten, um sicherzustellen, dass keine anderen Bereiche dadurch beschädigt wurden. Die Auswirkungen waren astronomisch! Da ich keine Zeit dafür hatte, erfand ich das „Poor-Man’s Scoped CSS" oder „Code-Block", wie es bekannt wurde. Code-Block waren technisch nur umgebende Divs mit IDs um den Inhalt, und dann ein benachbarter Style-Block, um die notwendigen Änderungen vorzunehmen (obwohl dies einfach klingt, war es für diese CMS-Arbeit etwas außerhalb des Rahmens). Da dieses CSS nur für diese Seite galt, machte es keinen Sinn, diese Stile die globalen Stile aufblähen zu lassen. Es war perfekt. Der Style-Block würde keinen anderen Bereich der Website beeinträchtigen. Zweisprachige und Kampagneninhalte wurden einfach zu entwickeln und zu testen.
Glücklicherweise wird Scoped CSS noch sauberer und einfacher zu implementieren sein als meine McGyvered-Lösung. Es werden keine speziellen IDs benötigt, und tatsächlich wird die Möglichkeit, sehr einfache Selektoren wie „p" zu haben, Ihr CSS sehr sauber aussehen lassen.
Praktische Umsetzung
Wollten Sie schon einmal einen bestimmten Beitrag in Ihrem Stream auf eine bestimmte Weise hervorheben? Selbst wenn Ihr CMS keine Code-Eingabe im Editor erlaubt, haben Sie dank Scoped CSS möglicherweise immer noch Optionen.
WordPress ist ein Beispiel für ein CMS, das einschränkt, welche Codes Sie in den Inhaltsbereich eingeben können. Aus der Box entfernt WordPress viel Markup aus dem Wysiwyg-Editor, und das ist tatsächlich eine sehr, sehr gute Sache, da es jeden stray Code bereinigt, den ein Anfänger versehentlich einführen könnte. Benutzern die Eingabe von Code in ein CMS zu gestatten, bedeutet, ihnen die Möglichkeit zu geben, die Website zu zerstören! Zu viele schließende Div-Tags bedeuten ein völlig kaputtes Layout!
Mit etwas Vorarbeit können Sie ein benutzerdefiniertes Feld „Code-Block" erstellen, das es Ihnen ermöglicht, Scoped CSS direkt in diesen Beitrag einzufügen. Wenn Sie es wirklich ausgefallen mögen, könnten Sie die Funktionalität eines Plugins wie Custom Field Template nutzen, um es selbst für den am wenigsten versierten Benutzer einfach zu machen, davon zu profitieren, indem er Stilentscheidungen mit einem einfachen Formular trifft!
Im untenstehenden WordPress-Demo habe ich ein Twenty Eleven Child Theme erstellt (was bedeutet, dass ich mich vollständig auf die Standard-WordPress-Vorlage verlasse, mit Ausnahme der drei Seiten, an denen ich geringfügige Anpassungen vorgenommen habe). Die von mir vorgenommenen Änderungen sind wenige und einfach (ich sollte wahrscheinlich auch erwähnen, dass zum Zeitpunkt des Schreibens noch ein weiteres kleines Problem zu beachten ist, das ich mir aber für später aufhebe). Um Scoped CSS zum Laufen zu bringen, füge ich einfach ein wenig Logik zu content.php und content-single.php hinzu, um nach dem benutzerdefinierten Feld „scopedcss" zu suchen und dies dann in einen Style-Block einzufügen. Ich füge diesen Code einfach innerhalb des <article>-Blocks der relevanten Content-Schleifen ein.
<?php
$scopedcss = get_post_meta($post->ID, 'scopedcss', false);
foreach($scopedcss as $css) {
echo '<style scoped>'.$css.'</style>';
}
?>
Dann habe ich in meinem WordPress-Beitrag einfach das benutzerdefinierte Feld „scopedcss" hinzugefügt und die gewünschten Stile für diesen Beitrag geschrieben.

Hinweis: Wenn Sie an dieser Kunstrichtung auf Beitragsbasis interessiert sind, aber noch nicht bereit für Scoped Styles sind, schauen Sie sich dieses Plugin an, das Ihnen die Meta-Box zur Deklaration von Stilen bietet, aber diese werden nicht gescoped sein; Sie müssen so spezifisch sein wie bei normalem CSS.
Ein Wort der Warnung
Meine eigene Erfahrung mit meiner „Poor-Man’s"-Version davon war nicht nur Sonnenschein und Veilchen; es gibt eine große Schwäche bei diesem Ansatz und bei Scoped CSS: Die Organisation wird sehr schwierig – man hat Stile überall! Scoped CSS hat die Fähigkeit, den Tag zu retten, aber wenn es irgendwie möglich ist, sollten Sie ID-Selektoren und verknüpfte Stylesheets verwenden.
Dies ist einer der Hauptgründe, warum wir Inline-Stile vermeiden sollten. Sie sind unordentlich, sie erhöhen das Gewicht der Seite, das möglicherweise gecached werden sollte, sie sind schwer zu überschreiben, sie können die Fehlersuche erschweren und vor allem sind sie schwer zu warten. Wie Inline-Stile haben Scoped-Stile ihren Platz und können ein mächtiges Werkzeug sein. Verwenden Sie sie weise.
Noch eine größere Warnung
Die Verwendung von Scoped Styles *ohne ein ordnungsgemäßes Polyfill* ist gefährlich. In einem Browser, der sie nicht unterstützt, **werden die von Ihnen deklarierten Stile die gesamte Seite beeinflussen**. Stellen Sie sich vor, Sie verwenden einen Scoped Style, um eine Bildersetzungs-Technik auf dem h1-Titel eines Artikels auf Ihrer Website zu verwenden. Ihr Logo ist auch ein h1, und daher wird das Logo in nicht unterstützenden Browsern ebenfalls ersetzt. Das Ergebnis ist eine umgekehrt-kaskadierende Stil-Katastrophe.
Seien Sie gewarnt. Scoped Styles sind eine sehr nützliche Idee, aber die Tage, an denen Sie sie ohne Polyfill verwenden, sind noch weit entfernt.
Eine jQuery-Lösung
Aufgrund des fehlenden nativen Browser-Supports wäre dies heute eine enttäuschende Demo, wenn es nicht dieses großartige jQuery Polyfill von Simon Madine gäbe. Um meine Demo in WordPress zum Laufen zu bringen, habe ich außerdem
- jQuery in mein WordPress-Theme eingebunden.
- Folgenden Code in den Footer des Themes (footer.php im Theme-Ordner) eingefügt.
<script src="<?php bloginfo( 'stylesheet_directory' ); ?>/jquery.scoped.js"></script>
<script>
$.scoped();
</script>

Willst du spielen?
Chrome 20 ist zum Zeitpunkt des Schreibens der einzige Browser, der Scoped Styles unterstützt. Chrome 20 ist derzeit in Canary erhältlich, einer Vor-Beta-Version, die Sie problemlos parallel zu Stable Chrome ausführen können. Um sie zu verwenden, müssen Sie ein Flag aktivieren, was Sie tun, indem Sie
- Gehen Sie zur URL chrome://flags/
- Suchen Sie auf der Seite nach „scoped"
- Klicken Sie auf „Aktivieren"

Chrome entwickelt sich schnell, daher sollte Chrome 20 in etwa 12 Wochen nach dem Zeitpunkt des Schreibens (Mitte Juli 2012) stabil sein. Ob die Funktion aktiviert sein wird, ist eine andere Frage (wir wissen es einfach noch nicht).
Demos
Eines Tages wird Scoped CSS all die erstaunlichen Dinge, die Sie in diesen Demos sehen, nativ im Browser ohne zusätzliche JavaScript tun. Bis dahin können Sie träumen, darüber auf w3.org hier lesen und diese Demos ansehen
- Eine reine HTML-Demo einer ordnungsgemäßen Implementierung von Scoped CSS (funktioniert zum Zeitpunkt des Schreibens nicht)
- Eine reine HTML-Demo, die dank jQuery tatsächlich funktioniert
- Eine funktionierende WordPress-Demo
Scoped Styles werden, während sie die oben genannten Funktionen liefern, auch in Web Components, einem Vorschlag am W3C zur Definition wiederverwendbarer Widgets in Web-Apps der nächsten Generation, sehr leistungsfähig sein. Spannende Sache.
Dieses Feature sieht sehr nützlich aus und ich könnte mir vorstellen, es regelmäßig zu verwenden, besonders integriert in WordPress Custom Fields.
Sie erwähnten, dass Chrome 20 der einzige Browser ist, der dies derzeit unterstützt. Haben Sie Ideen zu den Auswirkungen/Ergebnissen in anderen Browsern?
Ich hoffe, das wird bald in anderen Browsern implementiert!
Wenn ich mich nicht irre, ist auf einem Browser, der „scoped“ nicht unterstützt, der Style-Block wie jeder andere Style-Block: Er beeinflusst das gesamte Dokument.
Habe es gerade auf Firefox 11 getestet: http://dabblet.com/gist/2419401. Der zweite ist auch SaddleBrown, obwohl er sich nicht im enthaltenden Scoped-Style-Block befindet.
Keine Ahnung! Zu diesem Zeitpunkt benutzen noch genug Leute ältere Browser, dass ich sowieso die jQuery-Lösung in der Zwischenzeit verwenden würde. Die langsame Übernahme neuerer Browser bedeutet, dass wir uns wahrscheinlich noch ein paar Jahre nicht nativ darauf verlassen können (ohne Fallback) :(
Ich hasse einfach WordPress. Aufgebläht & viel zu kompliziert.
Erklären Sie? Ich weiß, es hat ein paar Nachteile hier und da, aber insgesamt stört es die meisten Leute, die ich kenne (mich eingeschlossen), überhaupt nicht und sie hassen es definitiv nicht.
Was CMS angeht, ist WordPress extrem einfach zu bedienen und ziemlich leichtgewichtig. Wenn ein kleiner Kunde ein CMS anfordert, entscheide ich mich immer für WordPress. Ich würde wirklich gerne Ihre Erklärung hören.
PyroCMS ist ein ausgezeichnetes Gegenbeispiel zur Sperrigkeit von WordPress. Es ist leichtgewichtig und bietet Anpassungsmöglichkeiten mit viel weniger Aufwand.
WordPress ist ausgezeichnet, aber wir wollen PyroCMS für neue Kunden verwenden, wegen seiner Modularität, überlegenen Flexibilität und Geschwindigkeit sowie sauberem Code.
Ich mag die Idee von Polyfills hier nicht wirklich: Sie sind unnötig. Der einfachste und effektivste Fallback ist das, was Sie als Ihr „Poor Man’s Scope" bezeichnet haben.
Kein JavaScript? Kein Problem.
Das übertrifft kaum, wenn man nicht gescoped verwendet.
Übertrifft die Verwendung von Scoped allein und das Zerstören Ihrer gesamten Seite (oder der einer anderen: Schließlich ist ein Hauptzweck von
scopeddie Aggregation; und Sie können sich nicht auf Polyfills verlassen, wenn Sie nicht wissen, *wo* Ihr Feed landen wird).Diese Lösung
1. Funktioniert jetzt,
2. in allen gängigen Browsern, mit
3. keinen unbeabsichtigten Nebenwirkungen,
4. keinen Abhängigkeiten (Polyfills/Feature-Erkennung), und
5. unabhängig davon, ob JavaScript aktiviert ist oder nicht.
Zusätzlich zur Robustheit ist es auch leichter als die Verwendung eines Polyfills und bietet einen natürlichen Haken für andere Zwecke (z. B. Skripte).
Persönlich denke ich auch, dass es eine gute Sache ist, weil es Sie (den Entwickler) an Struktur und Browserbeschränkungen erinnert. Ob es Ihnen gefällt oder nicht, Sie können es im Moment nicht "einfach benutzen". Langfristig ist dieser Ansatz nicht viel mehr Aufwand und wird bei der Migration, wenn die Unterstützung entwickelt wird, sehr helfen.
Ich mag es! Tolle Idee!
Interessante Funktion, aber ich muss sagen, ich würde sie niemals benutzen, aus den oben genannten Gründen. Sie erschwert die Wartung, Sie haben Stile gemischt mit Struktur, Seitenaufblähen, die Liste geht weiter. Es fühlt sich einfach an wie die Verwendung von !important in normalem CSS... Es hat seinen Platz in Ausnahmefällen, aber meistens, wenn ich feststelle, dass ich !important schreibe, ist es Zeit zurückzugehen und herauszufinden, warum, und das andere CSS so zu ändern, dass es nicht mehr notwendig ist. Ich würde das Gleiche über die Verwendung dieser Funktion empfinden.
Ich stimme zu. Und ich fange an zu denken, dass dies wieder Inline-Styling ist? War das nicht etwas, das wir loswerden wollten?
Obwohl ich dem Konzept nicht besonders zugetan bin (fühlt sich an wie neumodisches Inline-Styling, und ich verpasse sicherlich den Sinn, so fühlt es sich an :) ), bin ich ein großer Fan davon, die richtige Funktion am richtigen Ort zu verwenden –
Anstatt dies –
um auf das Stylesheet-Verzeichnis zu verweisen, könnte stattdessen Folgendes verwendet werden –
Der Vorteil der Verwendung dieser Methode ist, dass sie für SSL richtig funktioniert.
Das alles gesagt – ein gutes Argument könnte und sollte vielleicht auch für das Enqueuing dieses Skripts gemacht werden, vielleicht in einem Funktionsplugin für das Theme oder in der functions.php-Datei dieses Themes.
Coole Verwendung von CSS SCOPED in WordPress-Posts, und auch für Leute, die nicht „php-freundlich" sind, können Sie den CSS-Code einfach im Beitrag unter „HTML VIEW" schreiben.
Auf diese Weise ist es auch schneller, da WordPress sich nicht um Custom Fields kümmern muss, besonders wenn Sie viele davon haben, und Sie müssen keine WP-Themes und PHP-Dateien verändern.
Ich liebe PHP und liebe die „Poor Man’s Scope" Custom Field Lösung, aber ich weiß, dass manche Leute sie hassen.
Danke Arley fürs Teilen...
Äh, Inline-Stile sind schlecht, okay?
Der Absatz „A word of warning" fasst es ziemlich gut zusammen, und hoffentlich muss ich niemals Inline-Stile verwenden :)
Absolut. Ich mag keine Inline-Stile, auch nicht.
Abgesehen davon sehe ich keine "echten" Anwendungsfälle für Scoped Styles, außer sowieso. Das ist doch nur für Hacks, oder?
Ja, ich werde das nicht benutzen und werde auch meinen Kunden nicht erlauben, es zu benutzen. Viel Glück für diejenigen, die sich dafür entscheiden.
ps. Es ist nicht im Entferntesten cool, es widerspricht einfach allem, wogegen wir seit Jahren kämpfen (Inhalt vs. Präsentation).
Ich habe das Gefühl, die Vorteile sind nicht so spezifisch für Scoped Styles im Vergleich zu Inline Styles. Obwohl ich sehe, dass dies seinen Nutzen hat, habe ich das Gefühl, dass es sich um so viele Randfälle handelt, dass es sich nicht lohnt, sie hinzuzufügen.
Das gesagt, ich würde die Fähigkeit lieben, etwas als gescoped aus einem Stylesheet heraus zu deklarieren, damit es alle äußeren Stile ignoriert und als eigener "Namensraum" fungiert, wenn Sie so wollen. Es könnte potenziell die CSS-Dateigröße reduzieren und gleichzeitig die verschiedenen Abstraktionsebenen beibehalten.
Auch verfügbar in Chrome Dev: (20.0.1105.0 dev-m)
„Aktivieren . Mac, Windows, Linux, Chrome OS
Das Attribut ‚scoped' in Elementen ehren."
Vielleicht bin nur ich zu müde, um zu verstehen, wie episch dieses Scoped Styling ist, aber wie würde sich das von der Hinzufügung einer eindeutigen Klasse (über PHP, natürlich) zum Body / Beitrag eines z. B. WordPress und diesem besonderen Beitrag einige einzigartige Stile geben unterscheiden?
Ich glaube, das BLANK WordPress-Theme von Chris Coyier und Jeff Starr hat diese Funktionalität, die es einem erlaubt
Ich habe das schon einige Male auf einer früheren Version meiner Website verwendet, um jedem Beitrag einen einzigartigen Touch zu verleihen, und ich musste dafür keine astronomisch großen Mengen an Zeit aufwenden. :)
Dadurch kann ich in einer One-Stylesheet-Umgebung weiterarbeiten, aber ich sehe definitiv auch das Potenzial von Scoped Styles. Naja, ich schätze, ich habe zu wenig Koffein und Schlaf. :P
Toller Artikel Arley, und auch gut zu lesen. :)
Ich denke, der Punkt ist, wenn Sie Stile pro Beitrag anpassen möchten (was Leute besonders bei Art-Directed-Blogs gerne tun), dann können Sie das zwar auf dem One-Stylesheet-Weg tun, aber Sie werden am Ende ein riesiges Stylesheet haben, bei dem ein großer Teil der Stile nur für eine Seite relevant ist. Zum Beispiel werden Sie auf der Homepage Dutzende von benutzerdefinierten Stilen laden, die sie nicht benötigt.
Die Scope-Methode ermöglicht es Ihnen, diese Stile auf die Seite zu beschränken, auf der sie benötigt werden, ohne Ihr Haupt-Stylesheet aufzublähen und sie für alle anderen Seiten laden zu müssen.
Ich glaube nicht, dass Scoped Styles an sich schlecht sind, aber sie könnten schlecht eingesetzt werden. Es hängt einfach von der Situation ab, schätze ich.
Gute Übersicht, Arley.
Viele Kommentare sagen, dass dies zu nahe an 'Inline-Stilen' ist und dass sie nicht viel Nutzen darin sehen. Sie deuten auf das hin, was meiner Meinung nach der wichtigste Vorteil ist, in Ihrem Abschnitt 'Warum ist das cool?', der meiner Meinung nach gut von Jeremy Keith hier zusammengefasst wird
http://www.html5forwebdesigners.com/semantics/index.html#scoped_styles
Er sagt
Der Hauptvorteil ist also die Portabilität. Das heißt, ein einzelner Inhaltsblock überall auf jeder Website platzieren zu können und er wird trotzdem das gleiche Styling haben. Wenn also (wenn diese Funktion häufiger wird) ein Entwickler sie auf die gleiche Weise verwendet wie Inline-Stile, dann sollte dies eine Warnung sein, dass vielleicht ein anderer Ansatz erforderlich ist.
Ah, ich verstehe ... Aber wie können wir einen Missbrauch des Scoped-Attributs vermeiden?
Nur eine sanfte Erinnerung, dass das Web ein multikontinentales System ist und Französisch außerhalb Kanadas gesprochen wird...
Es gibt mehr auf der Welt als Nordamerika ;)
Punkt anerkannt! Alle zweisprachigen Arbeiten, die ich je gemacht habe, sind kanadisch. Lustigerweise hatten französisch-kanadische Freunde, die kürzlich nach Paris gingen, und sagten, niemand konnte sie verstehen!
Ich werde 28 Websites für verschiedene Teile der Welt für ein multinationales Unternehmen (das wie mein Arbeitgeber in Großbritannien ansässig ist) erstellen.
Einige Länder wie Kanada haben 2 Hauptsprachen, wie Belgien (Flämisch/Wallonisch), einige haben bis zu 4 wie die Schweiz (Deutsch, Französisch, Italienisch, Rätoromanisch), das Vereinigte Königreich hat mehr, als Sie vielleicht denken (Englisch, Walisisch, Schottisch-Gälisch, Ulster, Kornisch), jeweils mit eigenen Eigenheiten, obwohl normalerweise Englisch und Walisisch die einzigen sind, die national berücksichtigt werden. Französisch ist nichts im Vergleich zu Norwegisch, was den benötigten Platz angeht!
Fügen Sie nun die verschiedenen Zeichensätze hinzu, die von diesen Sprachen verwendet werden, und das summiert sich. Es ist eine Minenlandschaft, ehrlich gesagt, aber ich glaube nicht, dass ich Scoped Styling verwenden würde, um damit umzugehen. Für mich geht es um flexible Vertikale :)
Wenn Sie also außerhalb Nordamerikas treten, ist die Welt VIEL komplizierter
Informativ Artikel über fortgeschrittene CSS. Tatsächlich sind dies die Hardcore-Tipps und Tricks, von denen kaum jemand weiß.
Sie haben einen Bonus durch die Verlinkung zur JQuery-Alternative gegeben. Süß!
Danke!!!
Großartiger Beitrag. Ich werde diese Technik vielleicht irgendwann verwenden, wenn ich gerettet werden muss. Ihr WordPress-Beispiel war wirklich gut und auf den Punkt gebracht.
Übrigens: Hier in Quebec müssen wir keinen um 50% größeren Platz für zweisprachige Inhaltscontainer einplanen, da wir bereits auf Französisch gestalten! ;-)
Unabhängig davon, ob ich dies jemals verwenden werde, ist es cool, einen weiteren Trick zur Hand zu haben.
Wissen Sie, was wirklich supercool ist? Die Anerkennung der besonderen Herausforderungen bei der Arbeit mit CMS-Systemen. Das schätze ich wirklich, Chris. Diejenigen, die sich noch nie mit (oft schlecht geschriebenem) Drittanbieter-HTML, das sie nicht ändern können, und (oft schlecht geschriebenem) Stylesheets, das sie nicht ändern oder dessen Laden sie nicht verhindern können, auseinandersetzen mussten, haben keine Ahnung.
Anstatt ein Bildhauer zu sein, der jeden Aspekt meiner Website liebevoll gestaltet, bin ich ein schwacher Ringer, der sich mit einem großen, dummen Ungetüm nach dem anderen auseinandersetzt und dabei erschöpft wird. Schreckliche Metaphern, aber ich denke, Sie verstehen den Kern.
Ich wollte dem ShopTalk-Podcast eine Frage zu diesem Thema schicken – könntet ihr über besondere Herausforderungen und Lösungsansätze bei der Arbeit mit CMS sprechen? Vielleicht tue ich es doch noch. Jedenfalls danke dafür!
Ich höre dich, Jessi. CMS-Ringen hat mir schon viele blaue Flecken eingebracht.
Ich würde gerne in einer zukünftigen ShopTalk-Folge etwas über CSS-Organisation/Strategien zur Vermeidung häufiger Fallstricke bei der Arbeit mit einem CMS hören.
Prost!
Danke für die Solidarität, Brandon! Vielleicht schaffe ich es, am Wochenende etwas an ShopTalk zu schicken. Fühlen Sie sich aber frei, mir zuvorzukommen!
Meine Entschuldigung, dass ich meine Kommentare an Chris statt an Arley McBlain gerichtet habe. Props an dich, Arley!
Großartige Alternative zu Inline-CSS… es ist so ziemlich Inline-CSS.
Ja, Julian, ich stimme dir zu, aber es ist auch eine Alternative zum Inline-Problem von A:HOVER.
Das Lesen der „Warnung“ und des ersten Kommentars lässt mich darüber nachdenken. Ich kann mir vorstellen, dass es zu einer Krücke wird, und zu einer Krücke, die die zukünftige Verwaltung einer Website zu einem Albtraum macht.
Wir haben alle Websites übernommen, die mit Inline-Styles übersät sind, mit ihnen ist nicht zu spaßen. Außerdem sind wir im Zeitalter der CMS, was bedeutet, dass diese Geltungsbereiche in Ihre Datenbank eingefügt werden, oder dass Sie eine Menge von Vorlagendateien verwenden oder eine Menge von Logik in Ihre Vorlagendateien einbauen.
9
Oh, ich erinnere mich, dass Sie vor ein paar Jahren ein Tutorial wie dieses hatten. Es ging um eine Seite aus Ihrem Blog. In derselben Woche haben Sie nur Safari benutzt. Gutes Gedächtnis, oder? Und die Seite war weiß (nicht wie Ihr aktuelles Theme damals) und hatte zwei große Bilder, und ja… sie wurden von Google Images genommen, und eine war mit Mozilla, die andere mit Safari… hmm!
Das Coole ist, dass Sie tatsächlich schöne JS-Skripte haben, sodass sie in allen Browsern funktionieren.
Viel Glück.
http://chriscoyier.net/2009/12/15/the-safari-challenge/
Yeah!
Vielleicht verstehe ich es einfach nicht, aber das scheint bemerkenswert ähnlich zu den Inline-Stilen zu sein, die wir alle vor Jahren verworfen haben.
Es scheint, als könnten sie das 20% cooler machen, indem sie auch eine externe Version wie diese zulassen.
style.css
index.html
Wenn Sie ein gekapseltes Element definieren, werden die globalen Stile noch hineinkaskadiert oder erhalten Sie eine „leere Leinwand“? Ich kann mir vorstellen, dass dies sehr nützlich wäre, wenn es letzteres wäre, da es Ihnen ermöglichen würde, wirklich einzigartige Elemente auf der Seite zu erstellen, die von *keinen* globalen Stilen befreit sind. Ein Beispiel wäre, wenn Sie einen Ausschnitt des CSS eines anderen auf Ihrer Seite oder in Ihrem Artikel anzeigen möchten, ohne auf ein iFrame oder einen JavaScript-Snippet zurückgreifen zu müssen, um die Stildeklarationen Ihrer eigenen Website zu löschen, wissen Sie, was ich meine?
„WordPress ist ein Beispiel für ein CMS, das einschränkt, welche Codes Sie in den Inhaltsbereich eingeben können.“
Ich benutze MODX genau aus diesem Grund: Ich möchte keine Einschränkungen, keine Limitierungen und ich möchte sicher keinen Zeitaufwand damit verbringen, überall im Backend herumzusuchen.
Ich möchte einfach nur codieren und gestalten, ohne mein Gehirn zu benutzen, um herauszufinden, wie ich das wiederverwenden und überschaubar halten kann.
Die Lösung sind Template Variables (TV) oder das, was WordPress Widgets nennt. Aber Widgets sind sooooo . . . . was? 2001? 1997?
Mit einem TV kann ich es überall in meiner Vorlage platzieren. Die TV kann buchstäblich alles sein, was ich möchte, und sie kann so `dumm` oder so intelligent sein, wie ich es brauche/möchte.
Ich mache genau das, was Sie hier beschreiben, regelmäßig, auf verschiedene Weise (und danke für diesen Beitrag). Ich muss nur nicht darüber nachdenken, mir Sorgen machen oder Stress haben, es zu verwalten. Mit einer übertriebenen ACL muss ich mir auch keine Sorgen machen, dass andere Content-Ersteller und Redakteure meine TVs überschreiben.
Danke für Ihren Beitrag dazu, ich kann mir sofort ein paar Fälle vorstellen, in denen er mir das Leben erheblich erleichtert hätte, wenn ich gewusst hätte, dass es so etwas gibt. Die Einbindung in WordPress war auch eine ziemlich interessante Idee.
Leider wird dies wahrscheinlich aus Blink (Chrome) entfernt werden: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/R1x18ZLS5qQ
Dieser Artikel sollte aktualisiert werden, da die Unterstützung von Blink entfernt wird: https://twitter.com/ebidel/status/476026012610748416
Sehr geehrte Damen und Herren, ich möchte mehrere jQuery UI Themes auf einer einzigen Seite verwenden, wie ist das einfach möglich?
Ich habe versucht, die Scope-Datei vom jQuery-Theme herunterzuladen, aber wenn ich die Demo-Datei öffne, funktioniert sie nicht, und ich konnte sie auch nicht auf meiner Webseite implementieren.
Bitte schreiben Sie etwas darüber.