rel属性是强制性核心属性,决定资源加载、渲染、安全及SEO语义;无rel的link标签无效,stylesheet全兼容且必须显式声明,preload需as属性且高优先级,prefetch低优先级后台预取,noopener/noreferrer仅对a标签配合target="_blank"生效。
rel 属性不是可有可无的装饰,它直接决定浏览器是否加载资源、如何加载、是否参与渲染、是否影响安全上下文,甚至被搜索引擎当作语义信号。用错值,轻则资源不加载,重则引入 XSS 风险或破坏预加载逻辑。
rel="stylesheet" 是唯一全兼容且必须显式声明的值
所有浏览器都支持
,但其他值支持度参差不齐——比如
在 Opera 和 Safari 中不生效,
在 IE/Safari/Chrome 中被忽略。关键点在于:
是强制属性,
没有
就是无效标签,浏览器会跳过解析。即使你只写
,也不会加载 CSS。
必须搭配
,且路径需正确;相对路径以 HTML 文档位置为基准,不是以当前 JS 执行位置。不支持
属性控制开关——设
仍会发起请求,只是不应用样式。多个
会按顺序级联,后加载的规则可覆盖前面同选择器的声明。
rel="preload" 和 rel="prefetch" 容易混淆但行为完全不同
是高优先级、强制、同步触发的资源提前加载;
是低优先级、空闲时才执行、不保证完成的后台预取。
立即学习
“
前端免费学习笔记(深入)
”;
常见错误是把字体或关键 JS 写成
,结果首屏渲染卡顿;或者给非关键图片加
,挤占带宽反而拖慢主资源
必须带
属性(如
、
),否则多数浏览器忽略
要求 CORS 支持,否则加载失败且不触发
不阻塞页面解析和渲染,适合下一屏可能访问的页面或 JS chunk
rel="noopener noreferrer" 只在 target="_blank" 时生效
和
对
标签无效,除非同时存在
(或
等非
值)。单独写
不会报错,但浏览器直接忽略该属性。
使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
下载
Chrome 88+ 开始,即使没写
,
也会默认启用
行为;但 Safari、Firefox 仍需显式声明。若只关心隐私不关心安全,可用
,它会清空
,但不切断
。
实操中优先用
,尤其在 CMS、评论区、富文本编辑器等用户可插入链接的场景。注意拼写:写成
或
都无效——必须小写、无连字符、空格分隔。
rel 值不能混用,且部分只对 link 或 a 标签有效
不是所有
值都适用于超链接;有些只对
有效,硬套到
上纯属浪费字节。例如:
、
、
、
、
只用于
、
、
、
、
主要用于
,且多数需配合
才起作用
、
、
、
必须放在
中,且
通常需为绝对路径
多个值可共存,用空格分隔,例如
合法且常见,等价于两个独立语义叠加。但像
这种组合毫无意义——浏览器只认第一个有效值,其余被忽略。
rel="stylesheet"rel="search"rel="sidebar"relrelhrefdisableddisabled="true"rel="stylesheet"rel="preload"rel="prefetch"prefetchpreloadrel="preload"asas="font"as="script"as="font"onerrorrel="prefetch"rel="noopener"rel="noreferrer"target="_blank"target="_new"_selfrel="noopener"reltarget="_blank"noopenerrel="noreferrer"document.referrerwindow.openerrel="noopener noreferrer"rel="no-follow"rel="NOFOLLOW"relrel="stylesheet"rel="preload"rel="prefetch"rel="preconnect"rel="dns-prefetch"rel="noopener"rel="noreferrer"rel="nofollow"rel="sponsored"rel="ugc"target="_blank"rel="canonical"rel="next"rel="prev"rel="alternate"hrefrel="nofollow ugc"rel="stylesheet prefetch"