display:table的幾個用法


DIV+CSS的布局已經讓表格布局幾乎很少用到,除非表格語義性很強的情況。

display:table解決了一部分需要使用表格特性但又不需要表格語義的情況,

尤其是DIV+CSS很不方便解決的問題,比如以下兩種情況:

一、父元素寬度固定,想讓若干個子元素平分寬度

通常的做法是手動設置子元素的寬度,如果設置百分數不一定能整除,設置具體的數值又限制了父元素的寬度固定,很煩。

可以使用display:table來解決:

.parent{display: table;  width: 1000px;}
.son{display: table-cell;}

如此一來,就算是三個或者六個元素也可以很方便均分父元素的寬度了。

二、塊級子元素垂直居中

想讓一個div或p在父元素中垂直居中一直是很多人解決不了的問題(注意直接對塊級元素使用vertical-align是不能解決這個問題的,vertical-align定義行內元素的基線相對於該元素所在行的基線的垂直對齊),同樣可以使用display:table方便解決:

.parent {display: table;}
.son {display: table-cell; vertical-align: middle;}

將塊級子元素的display設置為table-cell之后再使用vertical-align就可以了。

注意:雖然display:table解決了避免使用表格的問題,但有幾個需要注意的:

(1)display: table時padding會失效
(2)display: table-row時margin、padding同時失效 (3)display: table-cell時margin會失效


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM