1、link和@import的区别
a.从属关系区别
@import是 CSS 提供的语法规则,只有导入样式表的作用;
link是HTML提供的标签,不仅可以加载 CSS 文件,还可以定义 RSS、rel 连接属性等。
b.加载顺序区别
加载页面时,link标签引入的 CSS 被同时加载;@import引入的 CSS 将在页面加载完毕后被加载。
c.兼容性区别
@import是 CSS2.1 才有的语法,故只可在 IE5+ 才能识别;
link标签作为 HTML 元素,不存在兼容性问题。
d.DOM可控性区别
可以通过 JS 操作 DOM ,插入link标签来改变样式;由于 DOM 方法是基于文档的,无法使用@import的方式插入样式。
e.权重区别(该项有争议,下文将详解)
link引入的样式权重大于@import引入的样式。
**2、**CSS预处理器(Sass/Less/Postcss)
CSS预处理器的原理: 是将类 CSS 语言通过 Webpack 编译 转成浏览器可读的真正 CSS。在这层编译之上,便可以赋予 CSS 更多更强大的功能,常用功能:
- 嵌套
- 变量
- 循环语句
- 条件语句
- 自动前缀
- 单位转换
- mixin复用