link和@import都是用来引入外部样式表的方式,主要区别如下:
一. link
- 所属层面: HTML标签,在HTML的
<head>中引入外部样式表,如:
<link rel="stylrsheet" href="style.css" media="screen">
- 加载时机:浏览器会并行加载
link引入的样式表,不会阻塞页面的渲染。 在页面解析阶段就会被处理,优先于@import - 兼容性:没有兼容性问题
- 动态操作:可以在JavaScript中动态创建
link标签(如document.creatElement('link')),实时改变样式
二、@import
- 所属层面:CSS语法,在css样式表或
<style>标签中引入外部样式表,如:
@import url("print.css");
- 加载时机:串行加载,需要等当前的css样式加载完成之后,再加载
@import的样式表。可能延迟页面渲染,影响性能 - 兼容性:IE5+支持,但老版本IE中可能存在加载顺序问题
- 动态操作:无法通过JavaScript直接操作
@import,需要通过修改CSSOM间接处理,灵活性低
三、总结
| 所属层面 | 加载时机 | 兼容性 | 动态操作 | |
|---|---|---|---|---|
| link | HTML标签 | 并行加载,不会阻塞页面渲染 | 无兼容性问题 | 支持动态操作 |
| @import | CSS语法 | 串行加载,会影响页面渲染、影响性能 | IE5以下可能会有兼容性问题 | 不支持动态操作 |
836

被折叠的 条评论
为什么被折叠?



