Worum geht es bei @import?

7

Kann jemand erklären, welche Vorteile die Verwendung der @ import-Syntax im Vergleich zur Verwendung von CSS mit der Standard-Link-Methode bietet?

    
Chris 02.10.2008, 13:58
quelle

7 Antworten

1

Damit können Sie Ihre logische CSS-Datei auf mehrere physische Dateien verteilen. Hilft beispielsweise bei der Teamentwicklung. Auch nützlich, wenn Sie viele CSS-Dateien haben, die Sie nach funktionalen Bereichen (eine für Gitter, eine für Listen, etc.) trennen möchten, in derselben logischen Datei verfügbar zu haben.

    
Danimal 02.10.2008, 14:00
quelle
7

Wie der Beantworter gesagt hat, können Sie Ihr CSS in mehrere Dateien aufteilen, während Sie nur eine Verknüpfung im Browser erstellen.

Das heißt, es ist immer noch verschwenderisch, mehrere CSS-Dateien auf stark frequentierten Webseiten herunterzuladen. Unser Build-Skript "kompiliert" unser CSS, wenn es im Release-Modus erstellt wird, indem es Folgendes ausführt:

  • Alle CSS-Dateien werden verkleinert (zusätzliche Leerzeichen und Kommentare entfernt)
  • Wir haben eine "core.css" -Datei, die nur eine Liste von @import -Anweisungen ist; Während der Kompilierung wird jede dieser Dateien durch das minimierte CSS dieser Datei ersetzt

Somit haben wir in der Produktion eine einzelne, minimierte CSS-Datei, während wir im Entwicklungsmodus separate Dateien haben, um das Debuggen zu erleichtern.

    
Keith Williams 02.10.2008 16:39
quelle
6

Wenn Sie <link> s in Ihren HTML-Dateien verwenden, müssen alle diese Dateien alle CSS-Dateien verfolgen. Dies macht natürlich Änderungen und Ergänzungen (sowohl für CSS- als auch HTML-Dateien) schwieriger.

Mit @import reduzieren Sie eine theoretisch unendliche Anzahl von Änderungen auf eins.

    
Konrad Rudolph 02.10.2008 14:03
quelle
4

@import ermöglicht Ihnen, ein erweiterbares Stylesheet zu haben, ohne den HTML-Code ändern zu müssen. Sie können link einmal zu Ihrem Hauptblatt hinzufügen und dann, wenn Sie zusätzliche Blätter hinzufügen oder entfernen möchten, ändert sich Ihr HTML nicht.

Außerdem helfen kleinere Dateien dem Browser, besser zu cachen. Wenn Sie einen Teil eines großen Blattes ändern, muss das gesamte Blatt für jeden Benutzer erneut heruntergeladen werden. Wenn die Stile in einigen wenigen Blättern in logische Bereiche unterteilt sind, muss nur die Datei heruntergeladen werden, die den geänderten Teil enthält. Das kostet natürlich zusätzliche HTTP-Anfragen.

    
Joel Coehoorn 02.10.2008 14:07
quelle
2

Ein weiteres praktisches Bit, obwohl ziemlich veraltet, ist, dass Netscape 4 nicht mit @import umgehen kann, also ist es eine gute Möglichkeit, ein Stylesheet für NS4 zu verwenden und dann ein anderes Stylesheet für modernere Browser zu verwenden, das in Standards importiert wurde konforme Art und Weise.

    
Chris Marasti-Georg 02.10.2008 14:15
quelle
2

@import ist CSS-Code. <link> ist HTML-Code. Wenn Sie also Stylesheets in andere Stylesheets einfügen möchten (oder wenn Sie HTML nicht ändern können), ist @import der richtige Weg.

Gemäß der CSS-Spezifikation müssen alle @import -Deklarationen vor beliebigen Stilregeln in Ihrem Stylesheet erscheinen. Mit anderen Worten, alle oben im Stylesheet

Alle @import -Deklarationen, die nach Stilregeln angezeigt werden, sollten ignoriert werden. Internet Explorer hat das nie respektiert; Ich glaube, dass andere Browser dies tun. Dies macht @import ein bisschen weniger nützlich, weil Regeln in einem Stylesheet, die importiert werden, durch Regeln gleicher Spezifität im importierenden Stylesheet überschrieben werden.

    
Paul D. Waite 03.10.2008 13:56
quelle
0

Sagen Sie, Sie arbeiten für Massive Dynamics, Corp .. Es hat eine Widgets-Abteilung. Die Abteilung Widgets verfügt über eine Buchhaltung. Konten sind unterteilt in Kreditorenbuchhaltung und Debitorenbuchhaltung.

Mit @include starten Sie die Website mit einem Top-Level-Stylesheet global.css , das für alles gilt.

Dann erstellen Sie ein zweites Stylesheet, widgets.css für die Widgets-Abteilung. Es enthält das globale und seine eigenen Stile (die bei Bedarf die globalen Stile wegen der Kaskade übersteuern können). Dann erstellen Sie eine dritte accounts.css für Accounts. Es enthält widgets.css , dh es enthält auch global.css . Schütten, spülen, wiederholen.

    
AmbroseChapel 04.10.2008 00:08
quelle

Tags und Links