interview
frontend-html
HTML 的 src 和 href 属性有什么区别

前端 HTML 面试题, HTML 的 src 和 href 属性有什么区别?

前端 HTML 面试题, HTML 的 src 和 href 属性有什么区别?

QA

Step 1

Q:: HTML 的 src 和 href 属性有什么区别?

A:: src(source)属性用于指定嵌入外部资源的位置,比如图像(<img>)或脚本(<script>)。当浏览器解析到含有 src 属性的元素时,会暂停 HTML 文档的解析,并向服务器发送请求获取资源。通常,src 会引入非 HTML 文档的内容,例如图片、视频、音频等文件。 href(hypertext reference)属性用于指定链接目标的 URL(统一资源定位符),通常用于超链接(<a>)、样式表(<link>)等元素。当浏览器遇到含有 href 属性的元素时,不会暂停页面解析,而是继续解析 HTML 文档,直至用户交互时再去请求指定的资源。通常 href 用于引用 HTML 文档、CSS 文件等。 简言之,src 用于嵌入内容,href 用于建立链接。

Step 2

Q:: 为什么在图片元素中使用 src 而不是 href?

A:: img 元素的主要功能是将图像嵌入到网页中,因此使用 src 属性来指定图像的路径。浏览器在解析到 src 时会立即发送 HTTP 请求获取图像,并将其嵌入到文档中。href 则是用于链接资源的引用,不适合用于嵌入图像或其他资源。

Step 3

Q:: 可以在 <a> 标签中使用 src 属性吗?为什么?

A:: 不可以。<a> 标签设计用于创建超链接,它需要的是一个指向目标页面或资源的链接,因此只能使用 href 属性。src 属性是为嵌入资源而设计的,它并不具备链接资源的能力,因此不能在 <a> 标签中使用。

用途

理解 src 和 href 之间的区别对于前端开发者来说至关重要。src 和 href 是最常用的 HTML 属性之一,错误使用它们可能会导致页面无法正确加载资源或导航。比如,开发者在需要加载图片、脚本或内嵌内容时,会使用 src 属性;而在创建超链接或引用外部样式表时,会使用 href 属性。在实际生产环境中,尤其在优化页面性能时,正确使用这些属性可以避免不必要的页面加载延迟,提高用户体验。\n

相关问题

🦆
在 HTML 中,link 和 script 标签有什么区别?

<link> 标签用于将外部资源(如 CSS 文件)链接到当前文档,而 <script> 标签用于嵌入或引用外部 JavaScript 脚本。<link> 通常位于 <head> 部分,用于引入影响页面渲染的资源;<script> 则可以放在 <head> 或 <body> 中,主要用于执行逻辑操作、交互等任务。

🦆
如何优化页面中的资源加载?

可以使用异步加载(async)和延迟加载(defer)技术来优化 <script> 标签中的 JavaScript 文件加载,减少对页面渲染的阻塞。对于图像,可以使用懒加载(lazy loading)技术,只在需要时加载图像。使用 <link rel='preload'> 标签可以预先加载关键资源,如字体、关键样式表等,以提升页面首屏加载速度。

🦆
什么是内容安全策略 Content Security Policy, CSP,它与 src 和 href 有何关系?

内容安全策略 (CSP) 是一种浏览器机制,用于防止跨站脚本 (XSS) 攻击。通过 CSP,开发者可以指定哪些资源可以加载(例如图像、脚本、样式表等),从而限制 src 和 href 属性中所允许的 URL。这一策略可以有效防止恶意内容被注入到页面中。