首頁 web前端 css教學 有關內容可見性的更多信息

有關內容可見性的更多信息

Apr 01, 2025 am 04:50 AM

CSS 的content-visibility屬性:性能提升與可訪問性挑戰

2020 年8 月,CSS 的content-visibility屬性開始在Chrome 瀏覽器中使用,Una Kravets 和Vladimir Levin 曾撰文介紹過它。為了充分發揮其性能優勢,需要將其與contain-intrinsic-size屬性結合使用,後者需要對頁面中大塊內容的高度進行預估。這其中最奇怪的部分在於,你需要對這些大塊內容的高度進行一個近似的猜測。

我之前曾提出疑問:僅僅猜測高度?如果猜測錯誤會怎樣?是否會影響性能?如果大屏幕和小屏幕之間的差異很大,是否(或應該)在不同的視口更改此值?

Jake Archibald 和Das Surma 最近製作了一個視頻,對這些問題進行了澄清。在視頻的7 分30 秒左右,你可以看到這有多麼令人困惑。 Jake 使用了一個大型HTML 規範頁面作為演示,並為大塊HTML 內容添加了包裝器,並應用了以下代碼:

 section {
  content-visibility: auto; /* 延遲繪製*/
  contain-intrinsic-size: 1px 5000px; /* 內容大小的猜測,寬度無關緊要*/
}
登入後複製

顯然, 5000px不是元素的高度,而是該元素內容的大小。這很重要,因為它會將父元素的高度增加到這個數值,除非父元素通過自身的高度屬性覆蓋它。其神奇之處在於瀏覽器只會繪製第一個section(視口高度很可能小於5000px),並推遲其餘部分的繪製。這有點像延遲加載,但作用於所有內容,而不僅僅是媒體。它假設下一個section 高度為5000px,但一旦其頂部可見,它就會被實際繪製,並確定正確的高度。因此,如果你的頁面只是大型塊狀內容堆疊在一起,使用一個非常大的數字應該可以正常工作。如果你的網站比這更複雜,那就自求多福吧。

這是一個很好的視頻,你應該看看:視頻鏈接

這又是另一個需要你向瀏覽器提供網站信息以便它能夠提升性能的例子。瀏覽器本身可以找出這些信息,但只有在執行了具有性能成本的操作之後才能做到。因此,你必須提前告訴它,從而避免某些類型的額外工作。對於響應式圖片,如果我們使用srcset屬性提供圖像並提前告訴瀏覽器它們的大小,包括一個包含CSS 行為信息的sizes屬性,它就可以提前進行計算,只下載最佳圖像。同樣,對於CSS 中的will-change屬性,我們可以在提前告訴瀏覽器我們將進行移動操作,以便它能夠進行預優化,否則它無法做到這一點。這是可以理解的,但有點令人厭煩。這就像我們需要一個stuff-you-need-to-know.manifest文件在瀏覽器執行任何其他操作之前提供給它——但這將是一個額外的請求!

可訪問性問題也很重要。 Steve Faulkner 對將content-visibility: auto應用於圖像和段落進行了測試:

內容在視覺上是隱藏的,但在JAWS 和NVDA 中,都會宣布隱藏的圖像,但元素的內容不會被宣布。這與圖像和段落元素的內容在瀏覽器輔助功能樹中的表示方式有關:圖像在輔助功能樹中以alt 文本作為輔助功能名稱顯示。段落元素的內容不在輔助功能樹中。

他指出,根據規範,以這種方式隱藏的內容不應提供給屏幕閱讀器。我可以理解這兩種情況,例如像display: none一樣隱藏所有內容,這意味著沒有任何內容在輔助功能樹中。或者,將所有內容都保留在輔助功能樹中。現在它處於一種中間狀態,你可能會在輔助功能樹中看到一堆孤立的圖像,除了它們的alt 文本之外沒有任何其他上下文。這是一個有趣的例子,說明新技術在推出時可能比你希望看到的更粗糙。

說到alt 文本,我們都知道當它們代表需要向無法看到它們的人描述的重要內容時,它們不應該是空的。 Dave 說它們應該像段落一樣

我終於建立了最簡單的聯繫:alt 文本就像一個段落。文字圖片。我知道這很基本,但這有助於我理解如何編寫好的alt 文本以及我的代碼的源順序。

我不想在這裡過於負面!為設置具有content-visibility屬性的長滾動頁面而獲得的性能提升是巨大的,這太棒了。能夠用兩行代碼告訴瀏覽器哪些內容可以繪製是很好的。

  1. 我一直說“繪製”,但我不知道這是否真的是正確的術語,或者它是否意味著更具體的含義。規範中提到諸如“允許用戶代理在需要之前潛在地省略大量佈局和渲染工作”(強調我的)之類的內容。

More on content-visibility

以上是有關內容可見性的更多信息的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1675
14
CakePHP 教程
1429
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
靜態表單提供商的比較 靜態表單提供商的比較 Apr 16, 2025 am 11:20 AM

讓我們嘗試在這裡造成一個術語:“靜態表單提供商”。你帶上html

使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom 每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom Apr 17, 2025 am 10:55 AM

在本週的平台新聞綜述中,Chrome引入了一個用於加載的新屬性,Web開發人員的可訪問性規範以及BBC Move

帶有HTML對話框元素的一些動手 帶有HTML對話框元素的一些動手 Apr 16, 2025 am 11:33 AM

這是我第一次查看HTML元素。我已經意識到了一段時間,但是尚未將其旋轉。它很酷,

紙張形式 紙張形式 Apr 16, 2025 am 11:24 AM

購買或建造是技術的經典辯論。自己構建東西可能會感覺更便宜,因為您的信用卡賬單上沒有訂單項,但是

託管您自己的非JavaScript分析的選項 託管您自己的非JavaScript分析的選項 Apr 15, 2025 am 11:09 AM

有很多分析平台可幫助您跟踪網站上的訪問者和使用數據。也許最著名的是Google Analytics(廣泛使用)

'訂閱播客”鏈接應在哪裡? '訂閱播客”鏈接應在哪裡? Apr 16, 2025 pm 12:04 PM

有一段時間,iTunes是播客中的大狗,因此,如果您將“訂閱播客”鏈接到喜歡:

See all articles