首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

CSS display 屬性深度解析:inline、block、none、table 與流式佈局核心

     編輯:關於JSP

前言

display 是 CSS 佈局的基因開關。它決定元素如何參與文檔流、如何生成盒子、如何與兄弟元素交互。掌握 display 的各類值與行為差異,是從「寫出樣式」進階到「掌控佈局」的關鍵。

一、三大基礎值

值盒子類型文檔流行為典型元素可設置寬高/內邊距/邊框
inline行內盒不換行,與文字同行流動<span>, <a>, <strong>寬高無效;水平 padding/border/margin 生效,垂直方向不影響行高
block塊級盒獨佔一行,前後換行<div>, <p>, <h1-h6>完全生效
none不生成盒子從文檔流移除,佔據 0 空間隱藏元素不可操作

關鍵差異:display: none vs visibility: hidden

  • display: none:元素徹底消失,**不佔空間**,後續元素補位。
  • visibility: hidden:元素**不可見但保留幾何位置**,佔空間,後續元素不動。

二、表格相關值(CSS Table Layout)

無需 HTML <table> 標籤即可實現表格佈局特性:

值對應 HTML用途
table<table>外層容器
table-row<tr>行容器
table-cell<td>單元格,**支援 vertical-align、自動等高**
table-column<col>列屬性(極少用)
table-row-group<tbody>行組
table-header-group<thead>表頭組(打印重複)
table-footer-group<tfoot>表尾組
table-caption<caption>標題
inline-table-行內表格,不換行

實戰:垂直居中與等高列

.parent { display: table; width: 100%; }
.child { display: table-cell; vertical-align: middle; }

優勢:語義化 HTML(用 <div>),無需浮動/定位/柔性盒子即可實現傳統難點。

⚠️ 警告

**數據型內容請務必用 HTML <table>**。CSS Table 僅用於佈局輔助,濫用會嚴重損害無障礙性(屏幕閱讀器無法識別語義)。

三、其他特殊值

值行為兼容性/備註
list-item生成主塊盒 + 列表項標記盒 (::marker)需嵌套在 <ul/ol> 中正確顯示
run-in視父元素決定:父為塊→行內;父為行內→塊**主流瀏覽器不支援** (Chrome/Firefox/Edge 均移除)
compact類似 run-in,依賴上下文**已廢棄,無瀏覽器實現**
marker配合 ::before/::after 的 content 使用極少直接聲明,通常由 UA 樣式表自動應用

四、現代佈局新紀元:Flexbox / Grid

display: flex / grid 創建**柔性/網格格式化上下文**,子元素成為 Flex/Grid 項目,擁有強大的對齊、分配、排序能力。

.flex-container { display: flex; justify-content: space-between; align-items: center; }
.grid-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }

**建議**:新項目優先 Flex/Grid,舊項目維護時理解 inline/block/none/table 即可。

五、實戰技巧速查

  1. 導航欄橫向排列:li { display: inline-block; } 或 flex。
  2. 打印樣式隱藏導航/側欄:@media print { nav, aside { display: none; } }。
  3. 語義化標題與副標題同行:h1 { display: inline; } .subtitle { display: inline; margin-left: 1em; }。
  4. 圖片底部間隙:img { display: block; } 或 vertical-align: bottom;。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved