2016-12-05 3 views
5

оригинал css имеет ключевое слово @import, которое может включать в себя внешний файл css.В чем разница между css @import и SASS/SCSS @import?

Итак, в чем разница между этим @import от SASS/SCSS @import?

+0

Они принципиально делают одну и ту же концептуальную вещь, но SASS предварительно обрабатывается компилятором SASS и этот компилятор делает все, что он делает с этой директивой, в то время как браузер делает все, что он делает, когда сталкивается с директивой в файле .css. Не уверен, сколько деталей вы ожидаете от нас здесь ... – deceze

+0

Досадно, что вы не можете @import * * css * файл в SCSS * для компиляции *. SASS предполагает, что вам нужен CSS-импорт, и он остается в сгенерированном коде. – connexo

+1

Кажется, что [исправлено, по крайней мере, в libsass] (http://stackoverflow.com/a/30279590/137626) (и некоторые компиляторы ruby?) – FelipeAls

ответ

3

@import в CSS: CSS имеет возможность импорта, которая позволяет разделить ваш CSS на более мелкие, более ремонтопригодные части.

Принимая во внимание,

@import в SASS/SCSS: Сасс строит поверх текущего CSS @import, но вместо того, чтобы требовать запроса HTTP, Sass будет принимать файл, который вы хотите импортировать и объединить его с файлом, который вы импортируете, чтобы вы могли обслуживать один CSS-файл в веб-браузере.

Например:

В _reset.scss

// _reset.scss 

html, 
body, 
ul, 
ol { 
    margin: 0; 
    padding: 0; 
} 

В base.scss

// base.scss 

@import 'reset'; 

body { 
    font: 100% Helvetica, sans-serif; 
    background-color: #efefef; 
} 

Список литературы: SASS Guide

+0

Означает ли это, что скомпилированный css-файл отобразит «reset» .scss' и содержимое 'base.scss' в том же файле, при этом сначала отображается содержимое' reset.scss'? – wmock

+0

@wmock Да. Ты прав. –

3

Я рекомендую использовать импорт Sass везде, где это возможно.

Предположим, что мы имеем следующую код, написанный на родном CSS:

@import "style1.css"; 
@import "style2.css"; 
@import "style3.css"; 

В результате, вы получаете один файл, который загружает другие файлы. Эти запросы отправляются отдельно на ваш сервер, и вы получаете в ответ 3 файла. Посмотрите на консоль разработчика, чтобы заметить эту проблему.

В файлах Sass файлы объединены в один файл (используя рабочий процесс frontend, который вы используете), и это всего лишь один запрос на ваш сервер.

0

css @import происходит во время выполнения, Sass @import во время сборки.

Смежные вопросы