一、href
href:Hypertext Reference的缩写,超文本引用,它指向一些网络资源,建立和当前元素或者说是本文档的链接关系。在加载它的时候,不会停止对当前文档的处理,浏览器会继续往下走。常用在a、link等标签。
<a href="http://www.baidu.com"></a>
<link type="text/css" rel="stylesheet" href="index.css">
如上面所显示的那样,当浏览器加载到link标签时,会识别这是CSS文档,并行下载该CSS文档,但并不会停止对当前页面后续内容的加载。这也是不建议使用@import加载CSS的原因。
tip:@import和link的区别
1.从属关系区别
@import是 CSS 提供的语法规则,只有导入样式表的作用;link是HTML提供的标签,不仅可以加载 CSS 文件,还可以定义 RSS、rel 连接属性等。
2.加载顺序区别
加载页面时,link标签引入的 CSS 被同时加载;@import引入的 CSS 将在页面加载完毕后被加载。
3.兼容性区别
@import是 CSS2.1 才有的语法,故只可在 IE5+ 才能识别;link标签作为 HTML 元素,不存在兼容性问题。
4.DOM可控性区别
可以通过 JS 操作 DOM ,插入link标签来改变样式;由于 DOM 方法是基于文档的,无法使用@import的方式插入样式。
5.权重区别??
link引入的样式权重大于@import引入的样式。
@import引入的样式,会被层叠掉。其虽然后被加载,却会在加载完毕后置于样式表顶部,最终渲染时自然会被下面的同名样式层叠。
二、src
src:source的缩写,表示的是对资源的引用,它指向的内容会嵌入到当前标签所在的位置。由于src的内容是页面必不可少的一部分,因此浏览器在解析src时会停下对后续文档的处理,直到src的内容加载完毕。常用在script、img、iframe标签中,我们建议js文件放在HTML文档的最后面。如果js文件放在了head标签中,可以使用window.onload实现js的最后加载。
<img src="king.jpg" />
<iframe src="http://www.baidu.com"></iframe>
<script src="king.js"></script>
href用于建立当前页面与引用资源之间的关系(链接),而src则会替换当前标签。
遇到href,页面会并行加载后续内容;而src则不同,浏览器需要加载完毕src的内容才会继续往下走。