by shigemk2

当面は技術的なことしか書かない

css @import vs less @import

あのサイトが@ importを使わない理由|WEB Drawer

cssファイルで外部スタイルシートを読みこむ方法には以下の方法がある。
@importを使う方法ですね。

たとえば、hoge.cssというファイルに

@import "reset.css";
@import "fonts.css";
@import "default.css";
@import "specific.css";

という風に記載すると、このファイルの読み込みが完了したあとに@importで指定したファイルの読み込みが開始する。

ここが重要である。つまり、hoge.cssの読み込みが完了しないと、@importで指定したファイルの読み込みが開始されないのだ。
また、cssの@importは別々にリクエストを送るので、上の例だと合計5つのHTTPリクエストが発生する。
このあたりが@importが忌避される原因だろう。

Stack Stack! | LESS と SCSS(Sass)、どっちを選ぶ?各CSSプリプロセッサのメリットを比較
翻ってlessだと、たとえばhoge.lessというファイルに

@import "reset.less";
@import "fonts.less";
@import "default.less";
@import "specific.less";

と書いても、コンパイラとかがよしなにやってくれて、複数のファイルを1つに統合してくれる。
つまり5つのファイルが(事実上)同時に読み込まれるのだ。

<link rel="stylesheet" href="hoge.css">
<link rel="stylesheet" href="fonts.css">
<link rel="stylesheet" href="reset.css">

と書けば同時に読み込んでくれるわけですけども。