SRC和HREF之间的区别

SRCHREF属性用于包括一些外部实体,如图像,CSS文件,HTML文件,任何其他网页或JavaScript文件。

SRCHREF有明显区别吗? 何时何地使用SRCHREF ? 我认为它们不能互换使用。

下面给出几个使用这些属性的例子:

  • 在链接标签内引用一个CSS文件: href="cssfile.css"
  • 在脚本标签内引用一个JS文件: src="myscript.js"
  • 在图片标签内引用图片文件: src="mypic.jpg"
  • 在一个锚标签内引用另一个网页: href="http://www.webpage.com"

注意: @ John-Yin的答案是更合适的,考虑到规格的变化。


是。 srchref之间有区别,不能互换使用。 我们使用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: asyncdefer 。 这些改变脚本(embedded或从外部文件导入)应该如何执行。

这意味着可以使用这些属性select三种可能的模式:

  1. async属性存在时,脚本将在asynchronous时立即执行。
  2. async属性不存在但是存在defer属性时,脚本在页面parsing完成时执行。
  3. 如果两个属性都不存在,则在用户代理继续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"> 

HREFH 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元素)

srcsrcset属性给出的图像,以及任何先前的兄弟源元素的srcset属性(如果父像素是picture元素)是embedded内容。

也没有提到href属性…

这表明当使用img标签时,应使用src属性以及…


W3C推荐标准的参考链接

我同意这个区别上的一切。 但在CSS的情况下,它看起来很奇怪。 由于CSS也被浏览器下载到客户端。 它不像指向任何特定资源的锚标签。 所以使用href对我来说似乎很奇怪。 即使它没有加载页面,仍然没有该页面不能看起来完整,所以它不仅仅是关系,而是像资源,反过来又指许多其他资源,如图像。

src用于将该资源添加到页面,而href用于链接到该页面中的特定资源。

当你在你的网页中使用时,浏览器会看到它的一个样式表,并继续进行页面呈现,因为样式表是以parellel的forms下载的。

当您在网页中使用时,它会通知浏览器在该位置插入资源。 所以现在浏览器必须获取js文件然后加载它。 在浏览器完成加载过程之前,页面呈现过程停止。 这就是为什么YUIbuild议加载你的JS文件在网页的最底部。