分享学习:url、href、src、link、@import的区别

209 阅读3分钟

URL(Uniform Resource Locator)统一资源定位器

URL是统一资源定位器(或称统一资源定位符/定位地址、URL地址等),俗称网页地址,互联网上得到的资源位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL。

URL分类:绝对URL和相对URL。

绝对URL显示文件的完整路径,只靠URL本身就能确定资源的位置。这意味着,URL必须带有资源的完整信息,包含协议、主机、路径等部分。绝对URL本身所在的位置与被引用的实际文件的位置 无关

相对URL以包含URL本身的文件夹的位置为 参考点,描述目标文件夹的位置,URL不包含资源位置的全部信息,必须结合当前网页的位置,才能定位资源。

  • .:表示当前目录,比如./a.html(当前目录下的a.html文件)
  • ..:表示上级目录,比如../a.html(上级目录下的a.html文件)

注意:如果设置了<base>标签,就对整个网页都有效。如果要改变某个链接的行为,只能用绝对链接替代相对链接。<base>标签指定网页内部的所有相对 URL 的计算基准。整张网页只能有一个<base>标签,而且只能放在<head>里面。它是单独使用的标签,没有闭合标签。例如:

<head>
<base href="https://www.xin.com/files/" target="_blank">
</head>

这时相对URLtest.html,就可以转成绝对URLhttps://www.xin.com/files/test.html

<base>标签必须至少具有href属性或target属性之一。

href(Hypertext Reference)超文本引用

href (Hypertext Reference)指定网络资源的位置,用来建立当前元素和文档之间的连接,常用有linka标签等。当它引用资源时,浏览器会将其识别为CSS文档,并行下载资源并且不会停止对当前文档的处理。

src(Source)

src(Source)会将指向的资源下载并引用到当前的文档中,常用标签有scriptimgiframe等。它会替换掉当前的元素。当浏览器解析src时,会暂停其他资源的下载和处理,直到将该资源下载、编译、执行完毕。

@import CSS@规则

@import 用于从其他样式表导入样式规则。

@import 规则必须在 CSS 文档的头部,但可以在 @charset 规则后面。

@import 规则不是一个嵌套语句,@import不能在条件组的规则中使用。

@import 规则还支持媒体查询,因此可以根据不同屏幕尺寸导入不同的样式文件。

link和@import的区别

两者都是外部引用CSS的方式,但是存在一定的区别:

区别1:link是XHTML标签,除了加载CSS外,还可以定义RSS等其他事务;@import属于CSS范畴,只能加载CSS。

区别2:link引用CSS时,在页面载入时同时加载;@import需要页面网页完全载入以后加载。建议使用link方式加载CSS,而不是使用@import 方式。

区别3:link是XHTML标签,无兼容问题;@import是在CSS2.1提出的,低版本的浏览器不支持。

区别4:ink支持使用Javascript控制DOM去改变样式;而@import不支持。

src和href的区别

区别1:作用结果不同。

href 用于在当前文档和引用资源之间确立联系;src 用于替换当前内容。

区别2:浏览器解析方式不同。

若在文档中添加href,不会停止对当前文档的处理。这也是为什么建议使用link方式加载CSS,而不是使用@import 方式;当浏览器解析到src ,会暂停其他资源的下载和处理,这也是为什么建议把 js 脚本放在底部而不是头部的原因。

区别3:请求资源类型不同

href是Hypertext Reference的缩写,表示超文本引用。用来建立当前元素和文档之间的链接;在请求 src 资源时会将其指向的资源下载并应用到文档中,替换掉当前的元素。