gpt4 book ai didi

html - Link 标签中媒体属性的用途是什么?

转载 作者:行者123 更新时间:2023-11-28 10:30:28 24 4
gpt4 key购买 nike

在link标签中使用media属性对我们有什么好处或者改进吗?如果是这样?那么我不需要在我的 CSS 中使用 @media 规则,使用 media 属性就足以为我的网页设置断点,对吧?

最佳答案

在未提及的链接标记中使用媒体属性的一个优点是,通过以这种方式包含样式,我们可以避免 CSS 渲染阻塞。

假设我有一个页面,其非常基本的样式设置为内联,但我在外部文件中也有用于平板电脑 (768px) 的样式,以及一些仅适用于平板电脑的其他样式。

我已经记录了在链接标记中使用媒体属性和不使用 Google Chrome DevTools 两种情况的渲染过程。为了查看此工作原理,我将网络节流添加到 Slow 3G 并将 CPU 减慢到 (20x slowndown)

这是第一个不在链接标签中使用 media 属性的版本:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link href="http://demo.wpthemego.com/themes/sw_emarket/wp-content/cache/wpfc-minified/228b2c494ae153cae7dd875ddf3b1a2f/1503393313index.css" rel="stylesheet">
<link href="https://www.youtube.com/yts/cssbin/player-vflSoLyqv/www-player-webp.css" rel="stylesheet">
<style>
h1 {
background: yellow;
color: black;
font-size: 2rem;
font-weight: lighter;
}
</style>
</head>
<body>
<h1>blocked render</h1>
</body>
</html>

enter image description here

统计数据:

  • 首次渲染时长为 1100 毫秒
  • 样式渲染被推迟到所有 css 都被下载和解析(CSS 渲染阻塞)

使用媒体属性的第二个版本:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link media="(min-width: 768px)" href="http://demo.wpthemego.com/themes/sw_emarket/wp-content/cache/wpfc-minified/228b2c494ae153cae7dd875ddf3b1a2f/1503393313index.css" rel="stylesheet">
<link media="(min-width: 768px)" href="https://www.youtube.com/yts/cssbin/player-vflSoLyqv/www-player-webp.css" rel="stylesheet">
<style>
h1 {
background: yellow;
color: black;
font-size: 2rem;
font-weight: lighter;
}
</style>
</head>
<body>
<h1>Not render blocked under 768px</h1>
</body>
</html>

enter image description here

统计数据:

  • 首次渲染时间为 2000 毫秒
  • 呈现样式是因为浏览器知道链接标签仅应用于宽度大于 728px
  • 的屏幕

因此使用媒体属性有助于我们防止渲染阻塞并改善关键渲染路径。如需更多信息,请阅读 Developers Google 中的文章 Render Blocking CSS

关于html - Link 标签中媒体属性的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45282616/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com