SRC和HREF之间的区别
SRC
和HREF
属性用于包括一些外部实体,如图像,CSS文件,HTML文件,任何其他网页或JavaScript文件。
SRC
和HREF
有明显区别吗? 何时何地使用SRC
或HREF
? 我认为它们不能互换使用。
下面给出几个使用这些属性的例子:
- 在链接标签内引用一个CSS文件:
href="cssfile.css"
。 - 在脚本标签内引用一个JS文件:
src="myscript.js"
。 - 在图片标签内引用图片文件:
src="mypic.jpg"
。 - 在一个锚标签内引用另一个网页:
href="http://www.webpage.com"
。
注意: @ John-Yin的答案是更合适的,考虑到规格的变化。
是。 src和href之间有区别,不能互换使用。 我们使用src replace元素,而href用于在引用文档和外部资源之间build立关系。
href (超文本引用)属性指定Web资源的位置,从而定义当前元素(在锚a
情况下)或当前文档(在link
情况下)与由该属性定义的目标锚或资源之间的链接或关系。 当我们写:
<link href="style.css" rel="stylesheet" />
浏览器明白这个资源是一个样式表和 处理 页面parsing不会暂停(由于浏览器需要样式规则来绘制和渲染页面,因此可能会暂停渲染)。 这与将css文件的内容转储到style
标签中并不相似。 (因此,build议使用link
而不是@import
将样式表附加到您的html文档中。)
src (Source)属性只是将当前文档中的资源embedded到元素定义的位置。 例如。 当浏览器发现
<script src="script.js"></script>
页面的加载和处理暂停,直到浏览器读取,编译和执行文件。 这与将js文件的内容转储到script
标签中相似。 与img
标签类似的情况。 它是一个空标签,内容应该放在里面,由src
属性定义。 浏览器暂停加载,直到获取并加载图像。 [ iframe
的情况]
这就是为什么build议在底部加载所有的JavaScript文件(在</body>
标签之前)
更新 :请参阅@ John-Yin的回答 ,了解如何按照HTML 5规范实现更多信息。
在HTML 5出来之前,apnerve的回答是正确的,现在有点复杂了。
例如,根据HTML 5规范, script
元素具有两个全局属性,它们改变src
属性的function: async
和defer
。 这些改变脚本(embedded或从外部文件导入)应该如何执行。
这意味着可以使用这些属性select三种可能的模式:
- 当
async
属性存在时,脚本将在asynchronous时立即执行。 - 当
async
属性不存在但是存在defer
属性时,脚本在页面parsing完成时执行。 - 如果两个属性都不存在,则在用户代理继续parsing页面之前立即提取并执行脚本。
有关详细信息,请参阅HTML 5build议
对于偶尔访问这个主题的人,我只是想更新一个新的答案。 一些答案应该由stackoverflow和我们每个人检查和存档。
我认为<src>
为页面添加了一些资源,而<href>
只是为了提供一个资源的链接(而不是将资源本身添加到页面中)。
简单的定义
SRC : (Source). To specify the origin of (a communication); document: HREF : (Hypertext Reference). A reference or link to another page, document...
你应该记住什么时候使用每个人,就是这样
href与链接一起使用
<a href="#"></a> <link rel="stylesheet" href="style.css" />
src与脚本和图像一起使用
<img src="the_image_link" /> <script type="text/javascript" src="" />
一般在CSS中使用url来包含一些东西,例如添加背景图片
selector { background-image: url('the_image_link'); }
SRC (我们) – 我想为自己加载这个资源。
例如:
Absolute URL with script element: <script src="http://googleapi.com/jquery/script.js"></script> Relative URL with img element : <img src="mypic.jpg">
HREF ( H yetext REF erence) – 我想为其他人提供此资源。
例如:
Absolute URL with anchor element: <a href="http://www.google.com/">Click here</a> Relative URL with link element: <link href="mystylesheet.css" type="text/css">
礼貌
如果你在说HTML4,它的属性列表可能会帮助你的微妙之处。 它们不可互换。
从W3:
当A元素的href属性被设置时,该元素为用户可以激活的链接定义一个源锚点来检索Web资源。 源锚点是A实例的位置,目标锚点是Web资源。
资料来源: http : //www.w3.org/TR/html401/struct/links.html
该属性指定图像资源的位置。 广泛认可的图像格式的例子包括GIF,JPEG和PNG。
资料来源: http : //www.w3.org/TR/REC-html40/struct/objects.html
它们是不可互换的 – 每个都在不同的元素上进行定义,如此处所示。
它们的确具有相似的含义,所以这是不一致的。 我认为主要是由于不同的供应商开始实施不同的标签,然后纳入规范是为了避免打破向后兼容性。
他们没有类似的含义。 'src'表示浏览器应该作为当前页面的一部分获取的资源。 HREF表示如果用户请求获取的资源。
一个简单的定义
- SRC:如果一个资源可以放在body标签内(对于image,script,iframe,frame)
- HREF:如果一个资源不能放在body标签中,只能被链接(对于html,css)
H REF :提供当前页面的信息,例如页面样式的CSS信息或链接到另一页面。 页面分析不停止。
SRC :是一个重新来源被添加/加载到页面中的图像或JavaScript。 页面分析可能会停止取决于编码的属性。 这就是为什么最好在结束体标签之前添加脚本,这样页面渲染就不会被阻挡。
通过HTML 5.1破解(2016年11月1日)之后:
第4部分(HTML的元素)
第2章(文档元数据)
第4节(链接元素)规定:
链接的目的地由
href
属性给出,该属性必须存在,并且必须包含可能被空格包围的有效非空URL。 如果href
属性不存在,则该元素不定义链接。
不包含src
属性…
女巫是合乎逻辑的,因为它是一个链接。
第12章(脚本)
第1部分(脚本元素)指出:
经典脚本可能是embedded式embedded的,也可能是使用
src
属性从外部文件导入的,如果指定了脚本,则会提供要使用的外部脚本资源的URL。 如果指定了src
,则它必须是可能被空格包围的有效非空URL。 内联脚本元素或外部脚本资源的内容必须符合经典脚本的JavaScript规范脚本生成的要求。
它甚至没有提到href
属性…
这表明在使用脚本标记的同时总是使用src
属性!
第7章(embedded式内容)
第5节(img元素)
由
src
和srcset
属性给出的图像,以及任何先前的兄弟源元素的srcset
属性(如果父像素是picture
元素)是embedded内容。
也没有提到href
属性…
这表明当使用img
标签时,应使用src
属性以及…
W3C推荐标准的参考链接
我同意这个区别上的一切。 但在CSS的情况下,它看起来很奇怪。 由于CSS也被浏览器下载到客户端。 它不像指向任何特定资源的锚标签。 所以使用href对我来说似乎很奇怪。 即使它没有加载页面,仍然没有该页面不能看起来完整,所以它不仅仅是关系,而是像资源,反过来又指许多其他资源,如图像。
src用于将该资源添加到页面,而href用于链接到该页面中的特定资源。
当你在你的网页中使用时,浏览器会看到它的一个样式表,并继续进行页面呈现,因为样式表是以parellel的forms下载的。
当您在网页中使用时,它会通知浏览器在该位置插入资源。 所以现在浏览器必须获取js文件然后加载它。 在浏览器完成加载过程之前,页面呈现过程停止。 这就是为什么YUIbuild议加载你的JS文件在网页的最底部。