欧美激情中文字幕在线_国产区精品视频_免费久久99精品国产自_日韩精品 欧美

優(yōu)化 Cumulative Layout Shift 累積布局偏移

"我正準(zhǔn)備點那里!為什么移走了??"

布局偏移可能會分散用戶的注意力。想象一下,您已經(jīng)開始閱讀一篇文章,可是頁面上的元素突然位移,讓您措手不及,于是您不得不再次找到先前閱讀的位置。這在網(wǎng)絡(luò)上十分常見,包括在閱讀新聞或嘗試單擊"搜索"或"添加到購物車"按鈕時。這種體驗在視覺上十分扎眼且令人郁悶。這些情況通常是由于另一個元素被突然添加到頁面上或是突然調(diào)整了大小,使可見元素被迫移動位置而導(dǎo)致的。

累積布局偏移 (CLS):核心 Web 指標(biāo)中的一項指標(biāo),通過計算未在用戶輸入 500 毫秒內(nèi)發(fā)生的布局偏移的偏移分?jǐn)?shù)總和來測量內(nèi)容的不穩(wěn)定性。該項指標(biāo)查看可視區(qū)域中可見內(nèi)容的位移量以及受影響元素的位移距離。

在本篇指南中,我們將介紹針對布局偏移常見成因的優(yōu)化方式。

CLS 較差的最常見原因為:

無尺寸的圖像
無尺寸的廣告、嵌入和 iframe
動態(tài)注入的內(nèi)容
導(dǎo)致不可見文本閃爍 (FOIT)/無樣式文本閃爍 (FOUT) 的網(wǎng)絡(luò)字體
在更新 DOM 之前等待網(wǎng)絡(luò)響應(yīng)的操作

無尺寸的圖像 ? #

概述:始終在您的圖像和視頻元素上包含width和height屬性。或者通過使用CSS 長寬比容器預(yù)留所需的空間。這種方法可以確保瀏覽器能夠在加載圖像期間在文檔中分配正確的空間大小。

 

歷史 #

在網(wǎng)絡(luò)發(fā)展的早期階段,開發(fā)者會在他們的<img>標(biāo)簽中加入width和height屬性,從而確保瀏覽器在開始獲取圖像前會在頁面上預(yù)先分配足夠的空間。這樣可以最大限度地減少回流和重排。

<img src="puppy.jpg" width="640" height="360" alt="小狗與氣球" />

您可能會注意到,上方的width和height不包括單位。這些"像素"尺寸可以確保一塊 640x360 的保留區(qū)域。無論圖像的真實尺寸是否匹配,該圖像都會被拉伸成保留區(qū)域的大小。

 

響應(yīng)式網(wǎng)頁設(shè)計得到引入后,開發(fā)者開始省略width和height,并取而代之開始使用 CSS 來調(diào)整圖像大小:

img {
  width: 100%; /* or max-width: 100%; */
  height: auto;
}

這種方法的一個缺點是,只有在圖像開始下載且瀏覽器可以確定其尺寸后才能為圖像分配空間。隨著圖像的加載,頁面會隨著每個圖像出現(xiàn)在屏幕上而進(jìn)行重排,因此導(dǎo)致文本常常突然出現(xiàn)在屏幕上。這與良好的用戶體驗相距甚遠(yuǎn)。

 

這種情況下就需要用到長寬比。圖像的長寬比是圖像寬度與高度的比例。我們通常用由冒號分隔的兩個數(shù)字來表示長寬比(例如 16:9 或 4:3)。x:y 的長寬比表示圖像的寬度為 x 單位,高度為 y 單位。

也就是說,如果我們知道其中一個維度,就可以確定另一個維度。對于 16:9 的長寬比:

如果 puppy.jpg 的高度為 360px,則寬度為 360 x (16 / 9) = 640px
如果 puppy.jpg 的寬度為 640px,則高度為 640 x (9 / 16) = 360px
在知道長寬比的情況下,瀏覽器就能夠進(jìn)行計算,并為高度和其關(guān)聯(lián)區(qū)域預(yù)留足夠的空間。

現(xiàn)代最佳實踐 #

現(xiàn)代瀏覽器目前會根據(jù)圖像的寬度和高度屬性設(shè)置圖像的默認(rèn)長寬比,因此,通過設(shè)置這些屬性來防止布局偏移是非常有價值的。感謝 CSS 工作組的努力,開發(fā)者只需要照常設(shè)置width和height即可:

<!-- set a 640:360 i.e a 16:9 - aspect ratio -->
<img src="puppy.jpg" width="640" height="360" alt="小狗與氣球" />

……而且所有瀏覽器的UA 樣式表都會根據(jù)元素現(xiàn)有的width和height屬性添加默認(rèn)長寬比:

 

img {
  aspect-ratio: attr(width) / attr(height);
}

提示:如果您很難理解長寬比,還可以使用便捷的計算器來幫助計算。

上述針對圖像長寬比的變化已經(jīng)在 Firefox 和 Chromium 中得到應(yīng)用,并將在 WebKit (Safari) 中進(jìn)行應(yīng)用。

如需深入了解長寬比并對響應(yīng)式圖像展開進(jìn)一步思考,請參閱使用媒體長寬比實現(xiàn)無卡頓頁面加載。

如果您的圖像在容器中,您可以使用 CSS 將圖像大小調(diào)整為該容器的寬度。我們需要設(shè)置height: auto;來避免圖像高度為某個固定值(例如360px )。

img {
  height: auto;
  width: 100%;
}

如何處理響應(yīng)式圖像?

處理響應(yīng)式圖像時,srcset定義了允許瀏覽器選擇的圖像以及每個圖像的大小。為了保證<img>的寬度和高度屬性可以進(jìn)行設(shè)置,每個圖像都應(yīng)該采用相同的長寬比。

<img
  width="1000"
  height="1000"
  src="puppy-1000.jpg"
  srcset="puppy-1000.jpg 1000w, puppy-2000.jpg 2000w, puppy-3000.jpg 3000w"
  alt="小狗與氣球"
/>

如何處理美術(shù)設(shè)計?

頁面可能會想要在窄可視區(qū)域中包含一張剪裁后的圖像,并在桌面上顯示完整圖像。

<picture>
  <source media="(max-width: 799px)" srcset="puppy-480w-cropped.jpg" />
  <source media="(min-width: 800px)" srcset="puppy-800w.jpg" />
  <img src="puppy-800w.jpg" alt="小狗與氣球" />
</picture>

 

 

 

上一篇 CorePress重構(gòu)預(yù)告
下一篇 CorePress Pro 更新到1.5.8
目錄
applek

applek管理員

個人說明在個人中心里面設(shè)置

本月創(chuàng)作熱力圖

最新評論
小超
小超
7月9日
下個版本考慮將下載地址加密(防止采集)
Lvtu
Lvtu
7月4日
qiang厲害
評論于留言建議
chinacnd
chinacnd
6月26日
這個主題是怎么做到加載速度那么快的?
風(fēng)起云涌
風(fēng)起云涌
6月17日
前臺投稿現(xiàn)在有點太抽象了 希望可以弄成那種分區(qū)填寫的 標(biāo)題,內(nèi)容,圖片,目錄,標(biāo)簽,這樣的
評論于留言建議
主站蜘蛛池模板: 日韩福利视频| 久久精品人人做人人爽| 日韩精品福利视频| 久久久久成人网| 日韩欧美不卡在线| 五月婷婷一区| 99视频免费播放| 国产精品国产精品国产专区不卡 | 久久久久久国产精品美女| 色婷婷综合久久久久中文字幕1| 国产精品第3页| 99久久精品免费看国产四区| 99视频免费观看蜜桃视频| 国产婷婷一区二区三区| 国产伊人精品在线v| 国产一区二区丝袜| 精品久久精品久久| 国产精品日本精品| 国产成人欧美在线观看| www.久久色.com| 91精品国产乱码久久久久久蜜臀| 7777在线视频| 日韩无套无码精品| 欧美日韩国产va另类| 久久免费福利视频| 国产免费色视频| 97久久精品国产| 日韩在线一级片| 欧美日韩一区二区视频在线 | 91av在线精品| 日韩高清国产精品| 久久久久久av| 国产精品免费观看高清| 亚洲一区二区三区av无码| 欧美午夜精品久久久久久蜜欧美亚洲第一页 | 久久久久久久久久久99| 国产精品一区二区av| 一区二区三区视频| 男女视频一区二区三区| 国产一区二区在线播放| 91国产视频在线播放|