CSS display: table
屬性:解決佈局難題的利器
核心要點:
- CSS 的
table
屬性功能強大,能解決多種佈局問題,並兼容所有現代瀏覽器。它允許 HTML 元素像表格元素一樣運作,為複雜的佈局和對齊問題提供通用的解決方案。 - CSS
table
屬性可用於創建等高盒子、簡單的舊式佈局以及具有內容編排功能的自適應佈局。它在響應式設計中尤其有用,允許元素根據用戶的屏幕尺寸調整其大小和位置。 - 儘管 CSS
table
屬性有很多優點,但它也有一些局限性。與其他顯示屬性相比,它在創建複雜佈局方面的靈活性較低,並且與某些 CSS 屬性(如float
和position
)配合使用效果不佳。但是,在許多情況下,使用table
屬性的優勢大於其缺點。
目前,Flexbox 可能是佈局構建的熱門新技術。 Flexbox 適應可用空間的驚人能力,讓許多人對它的可能性充滿了期待。然而,它無法解決所有佈局問題,而且它與舊版瀏覽器的兼容性也存在一些問題。 Flexbox 目前並沒有通用的 polyfill(舊版瀏覽器的回退方案)——目前我只知道一個針對 2009 年版本的 IE 的 polyfill:Flexie。在許多情況下,我發現使用經常被忽略的 CSS table
顯示屬性可以找到更簡單的解決方案。這些 CSS 屬性得到了所有相關瀏覽器的廣泛支持(注意,這排除了 IE6 和 IE7),並且可以優雅地解決一些主要的和小的佈局難題。
如果您不完全熟悉此技術,更改 DIV 的 display
屬性可以使其 表現 得像表格或表格元素。
等等,用表格進行佈局?這不好吧?
21 世紀初最熱門的網頁設計話題之一,就是關於使用 HTML 表格代碼作為佈局工具的爭論。那是一種 hack,現在仍然是不好的做法。
相反,我們在這裡使用完全有意義的 HTML(即 DIV、SECTION、HEADER 等),只是從 CSS 中藉用了一些有用的表格表示知識。這正是 CSS 的設計目的,所以不要覺得這是一個 hack 或補丁。它不是。
使用 display: table-cell
在下面的示例中,點擊頂部的按鈕,您可以將三個彩色 DIV 的 display
屬性從 block
更改為 table-cell
:
[CodePen 示例鏈接 - 替換為實際 CodePen 鏈接]
您可以看到 DIV 如何在不需要任何 float
屬性的情況下進行水平排列,並且您還可以訪問一些典型的表格規則(就像 vertical-align
)。
如果您需要一些間距,請注意,經典的 CSS margin
屬性對錶格單元格沒有任何影響:而是使用 border-spacing
(它必須應用於容器表格元素)。如果您想使用這些規則,可以在 Codepen 中找到一些註釋行。
此技術對於解決許多難以用其他方法解決的問題非常有用。
我已經挑選出三個簡單的案例,其中 table
顯示屬性非常有價值。
但首先讓我們看看它們:
display 屬性 | 呈現為 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
table, inline-table |
|
||||||||||||||||||||
table-column |
col |
||||||||||||||||||||
table-column-group |
colgroup |
||||||||||||||||||||
table-row-group |
tbody |
||||||||||||||||||||
table-header-group |
thead |
||||||||||||||||||||
table-footer-group |
tfoot |
||||||||||||||||||||
table-row |
tr |
||||||||||||||||||||
table-cell |
td |
||||||||||||||||||||
table-caption |
caption |
有關表格和 CSS 的真正全面指南,請查看 CSS Tricks:[CSS Tricks 的表格指南鏈接 - 替換為實際鏈接]
案例 1. 等高盒子
我認為這是我處理的最常見問題之一:有一些帶有未知內容的浮動盒子,您必須使它們都具有相同的高度。
我知道,Flexbox 可以輕鬆解決這個問題,但表格規則也可以做到。
只需將 display: table
(或 table-row
)屬性應用於容器,並將 display: table-cell
屬性應用於內部盒子。注意要刪除任何 float
屬性(否則 table-cell
屬性不會生效)。
HTML:
<div id="wrapper"> <div id="div1"></div> <div id="div2"></div> <div id="div3"></div> </div>
CSS:
#wrapper { display: table; } #wrapper div { display: table-cell; }
[CodePen 示例鏈接 - 替換為實際 CodePen 鏈接]
案例 2. 簡單的舊式佈局
這是一個比較過時的例子,但我認為您可能需要處理它,就像我最近做的那樣。
幾個月前,我收到一個與以下方案非常相似的圖形佈局。它需要與 IE8 兼容,我發現最好的方法是使用 CSS 表格規則:
[CodePen 示例鏈接 - 替換為實際 CodePen 鏈接]
案例 3. 具有內容編排功能的自適應佈局
前面的例子引導我們進入一個新的主題:是否可以使用 CSS 表格規則構建自適應佈局?
這不僅是可能的,而且我們還可以執行一些內容編排任務。
我們已經看到,如何將兩個 div 的 display
屬性從 block
更改為 table-cell
可以將其排列方式從垂直更改為水平。
此外,具有 table-header-group
屬性的元素會被置於表格佈局的頂部。同樣,table-footer-group
元素會被置於底部,依此類推。在重新格式化響應式佈局時,這可能出乎意料地有用。
在下面的筆中,標題元素在窗口調整大小時與其位置與導航元素交換,只需將其 display
屬性更改為 table-header-group
。
HTML:
<div id="wrapper"> <nav></nav> <header></header> <div id="banner2"></div> <footer></footer> </div>
CSS:
#wrapper, header { display: block; /* 我们实际上不需要此规则,因为它默认为此值 */ } @media (min-width: 48em) { #wrapper { display: table; } header { display: table-header-group; } }
footer
和 #banner2
div 也會出現類似的行為。
這是一個佈局方案:左側是默認的移動版本,右側是桌面版本:
這是一個運行中的演示:
[CodePen 示例鏈接 - 替換為實際 CodePen 鏈接]
有關此論點的更多信息,還可以查看:
- 使用
display:table
進行 CSS 堆疊 - CSS 佈局的反英雄——“
display:table
”
結論
CSS table
顯示屬性是解決大小佈局挑戰的被低估且有價值的解決方案。
雖然我個人可能不會選擇使用它們來構建複雜的佈局,但它們肯定可以解決與佈局部分相關的許多難題。
關於 CSS table
屬性的常見問題解答
(此處應補充關於CSS table
屬性的常見問題解答,內容與原文類似,但需調整措辭,避免重複。)
請注意,以上所有CodePen鏈接都需要替換成實際的CodePen鏈接。 我無法直接訪問和創建CodePen。
以上是佈局秘密武器#1:CSS表屬性的詳細內容。更多資訊請關注PHP中文網其他相關文章!

該試點程序是CNCF(雲本機計算基礎),安培計算,Equinix金屬和驅動的合作,簡化了CNCF GitHub項目的ARM64 CI/CD。 該計劃解決了安全問題和績效

此基於GO的網絡漏洞掃描儀有效地確定了潛在的安全弱點。 它利用了GO的並發功能的速度功能,包括服務檢測和漏洞匹配。讓我們探索它的能力和道德

網站建設只是第一步:SEO與反向鏈接的重要性 建立網站只是將其轉化為寶貴營銷資產的第一步。您需要進行SEO優化,以提高網站在搜索引擎中的可見度,吸引潛在客戶。反向鏈接是提升網站排名的關鍵,它向谷歌和其他搜索引擎表明您的網站權威性和可信度。 並非所有反向鏈接都有利:識別並避免有害鏈接 並非所有反向鏈接都有益。有害鏈接會損害您的排名。優秀的免費反向鏈接檢查工具可以監控鏈接到您網站的來源,並提醒您注意有害鏈接。此外,您還可以分析競爭對手的鏈接策略,從中學習借鑒。 免費反向鏈接檢查工具:您的SEO情報員


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

禪工作室 13.0.1
強大的PHP整合開發環境

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Dreamweaver CS6
視覺化網頁開發工具