Ich lerne etwas CSS, um meine Projektvorlage zu optimieren. Ich bin auf dieses Problem gekommen und habe im Internet keine klare Antwort gefunden. Gibt es einen Unterschied zwischen der Verwendung von @import oder Link in CSS?
Verwendung von @import
<style>@import url(Path To stylesheet.css)</style>
Verwendung von Link
<link rel="stylesheet" href="Path To stylesheet.css">
Was ist der beste Weg, um es zu tun? und warum? Vielen Dank!
Mit dem Befehl import können Sie ein anderes CSS in eine CSS-Datei importieren, was mit dem Befehl link nicht möglich ist. Wirklich alte Browser können die Importfunktionen nicht (IE4, IE5 teilweise) verarbeiten. Darüber hinaus können einige Bibliotheken, die Ihr xhtml / html analysieren, den Import des Stylesheets nicht durchführen. Bitte beachten Sie, dass Ihr Import vor allen anderen CSS-Deklarationen erfolgen sollte.
quelle
Kein wirklicher Unterschied heute, wird aber
@import
von älteren Browsern (Netscape 4 usw.) nicht korrekt behandelt, sodass der@import
Hack verwendet werden kann, um CSS 2-Regeln vor diesen alten Browsern zu verbergen.Auch hier gibt es keinen Unterschied, es sei denn, Sie unterstützen wirklich alte Browser.
Wenn ich Sie wäre, würde ich die
<link>
Variante jedoch auf Ihren HTML-Seiten verwenden, da Sie damit beispielsweise den Medientyp (Druck, Bildschirm usw.) angeben können.quelle
Mit der <link> -Anweisung können mehrere CSS geladen und asynchron interpretiert werden.
Die @ import-Direktive zwingt den Browser * zu warten, bis das importierte Skript inline in das übergeordnete Skript geladen wird, bevor es von der Engine korrekt verarbeitet werden kann, da es sich technisch gesehen nur um ein Skript handelt.
Viele CSS-Minimierungsskripte (und Sprachen wie less oder sass) verketten verknüpfte Skripte automatisch mit dem Hauptskript, da dies weniger Übertragungsaufwand verursacht.
* (abhängig vom Browser)
quelle
Dieser Artikel kann hier von Nutzen sein: 4 Methoden zum Hinzufügen von CSS zu HTML: Verknüpfen, Einbetten, Inline und Importieren
quelle
Wenn ich die @ import-Regel verwende, wird im Allgemeinen ein Stylesheet in ein vorhandenes Stylesheet importiert (obwohl ich es zunächst nicht gerne mache). Aber um Ihre Frage zu beantworten: Nein, ich glaube nicht, dass es einen Unterschied gibt. Stellen Sie einfach sicher, dass die URL in doppelte Anführungszeichen gesetzt wird, um gültigem XHTML zu entsprechen.
quelle
@import soll im Allgemeinen in einem externen Stylesheet verwendet werden und nicht wie in Ihrem Beispiel inline. Wenn Sie ein Stylesheet wirklich vor sehr alten Browsern verbergen möchten, können Sie dies als Hack verwenden, um zu verhindern, dass sie dieses Stylesheet verwenden.
Insgesamt wird das
<link>
Tag schneller verarbeitet als die @ import-Regel (die für die CSS-Verarbeitungs-Engine anscheinend etwas langsam ist).quelle
Microsoft Internet Explorer 9 (MSIE9) scheint @import nicht richtig zu handhaben. Beachten Sie diese Einträge aus meinem Apache-Protokoll (IP-Adresse versteckt, aber angegeben,
whois
dass sie Microsoft selbst gehört): der Haupt-HTML-Code, der mit screen.css verknüpft istIch werde jetzt zu
link
Elementen im HTML wechseln , da MSIE9 anscheinend zwei falsche Anforderungen an den Server ausgibt und 404 Fehler erhält, auf die ich verzichten könnte:Es gab danach ordnungsgemäße Anfragen für diese Dateien, aber wir können auf diese
url
Logik "zuerst auf den Server schießen, danach analysieren " verzichten.quelle