首頁 web前端 css教學 為什麼 CSS 網格不足以用於 Masonry 佈局

為什麼 CSS 網格不足以用於 Masonry 佈局

Dec 27, 2024 am 07:30 AM

Why CSS Grid Isn’t Enough for Masonry Layouts

Web 開發者社群長期以來一直在尋求一種易於使用的方法來實現砌體佈局。由於 Pinterest 和相關設計,僅使用 CSS 來創建這些美觀的動態網格非常困難。 Chrome 團隊認為,儘管最近建議將砌體功能添加到 CSS 網格佈局規範中,但該策略可能不是最好的策略。以下是我們認為砌體應該有自己的佈局技術的一些原因以及對開發人員的一些潛在優勢。

反對將 Masonry 添加到 CSS 網格的案例

1。效能問題

CSS 網格和磚石佈局以根本不同的方式處理項目放置:

  • CSS 網格:所有項目都在佈局之前放置,允許瀏覽器計算準確的軌道大小和位置。
  • 磚石:專案按照佈局放置,需要動態計算,這在混合固定軌道尺寸和固有軌道尺寸時可能會導致嚴重的性能問題。

考慮一個具有混合軌道定義的網格,例如 grid-template-columns: 200px auto 200px。對於砌體,瀏覽器必須以每種可能的配置預先佈局每個項目,從而在大型網格中創建指數級的複雜性。當使用子網格等高級功能時,這尤其成問題。

為了避免發布具有此類固有限制的佈局方法,我們提出了一種將砌體與 CSS 網格分開的解決方案。

2。規範複雜度

將砌體合併到網格規範中會引入與格式化上下文的核心原則相衝突的不一致:

  • 對齊屬性:Grid 支援六種對齊屬性,但 masonry 只會使用其中的一個子集,例如 Flexbox。
  • 放置屬性:網格有四個放置屬性(例如 grid-column-start),而磚石只需要兩個。
  • 軌道大小:某些模式,如網格模板列:重複(自動填充,最大內容)在砌體中有意義,但在網格中必須保持無效。

引入這些差異會增加開發人員的認知負擔,因為他們需要記住哪些功能在哪些情境中運作。這種碎片化可能會導致混亂和錯誤。

提案:砌體作為單獨的佈局方法

我們建議不要將 masonry 與 CSS Grid 捆綁在一起,而是使用 display: masonry 將其定義為獨立的佈局方法。這種方法保留了開發人員喜歡網格的所有靈活性,同時避免了上述陷阱。

範例

經典磚石佈置

可以透過以下方式實現具有相同大小列的簡單磚石佈局:

.masonry {
  display: masonry;
  masonry-template-tracks: repeat(auto-fill, minmax(14rem, 1fr));
  gap: 1rem;
}
登入後複製
登入後複製

混合軌道尺寸

對於窄列和寬列交替的佈局:

.masonry {
  display: masonry;
  masonry-template-tracks: repeat(auto-fill, minmax(14rem, 1fr));
  gap: 1rem;
}
登入後複製
登入後複製

自動調整大小的曲目

允許曲目根據內容自動調整大小:

.masonry {
  display: masonry;
  masonry-template-tracks: repeat(auto-fill, minmax(8rem, 1fr) minmax(16rem, 2fr)) minmax(8rem, 1fr);
  gap: 1rem;
}
登入後複製

跨越與放置

使專案能夠跨越多個軌道:

.masonry {
  display: masonry;
  masonry-template-tracks: repeat(auto-fill, auto);
  gap: 1rem;
}
登入後複製

單獨砌體佈局的好處

清晰度:開發人員可以使用砌體,而無需擔心 CSS 網格相容性的細微差別。

彈性:所有類似網格的功能仍然可用,而無需引入新的限制。

面向未來:專用的砌體規範可確保跨瀏覽器的一致行為,並避免不必要的複雜性。

以上是為什麼 CSS 網格不足以用於 Masonry 佈局的詳細內容。更多資訊請關注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

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

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 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教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

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

靜態表單提供商的比較 靜態表單提供商的比較 Apr 16, 2025 am 11:20 AM

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

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

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

與部分元素的交易 與部分元素的交易 Apr 12, 2025 am 11:39 AM

同一天發表了兩篇文章:

多腳步滑塊:一般案例 多腳步滑塊:一般案例 Apr 12, 2025 am 10:52 AM

這個兩部分系列的第一部分詳細介紹了我們如何獲得兩次跑步的滑塊。現在,我們&#039;

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

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

我們如何標記Google字體並創建Goofonts.com 我們如何標記Google字體並創建Goofonts.com Apr 12, 2025 pm 12:02 PM

Goofonts是由開發人員和設計師丈夫簽名的附帶項目,它們都是版式的忠實擁護者。我們一直在標記Google

它全部都在頭上:管理帶有React頭盔的React Power Site的文檔頭 它全部都在頭上:管理帶有React頭盔的React Power Site的文檔頭 Apr 15, 2025 am 11:01 AM

該文檔負責人可能不是網站上最迷人的部分,但是其中所處的內容對於您的網站的成功也一樣重要

See all articles