CSS display: table-cell 用於水平垂直居中


CSS display: table-cell 用於水平垂直居中

在 CSS 設置居中時候,水平和垂直居中的設置略有不同,通常我們使用 text-align:center 對圖片、文字等行內元素(inline / inline-block)進行水平居中,並使用 line-height 對單行文字設置垂直居中(僅適用於單行文字)。但是,如果使用表格,則可以通過 td(單元格元素)的 align="center"valign="middle" 屬性設置單元格內容的水平和垂直居中。 而對於那些不是表格的元素,可以通過 display: table-cell 將其模擬成一個表格單元格 td,這樣就可以通過 CSS 的vertical-align: middle; /* 垂直居中*/text-align: center; /* 水平居中*/ 屬性進行設置。

display 值及其作用

display 值 模擬 對應標簽
table 塊元素級的表格 <table>
inline-table 內聯元素級的表格 <table>
table-caption 表格標題 <caption>
table-cell 表格單元格 <td>
table-row 表格行 <tr>
table-row-group 表格行組 <tbody>
table-column 表格列 <col>
table-column-group 表格列組 <colgroup>
table-header-group 表格標題組 <thead>
table-footer-group 表格腳注組 <tfoot>

display: table-cell 實現水平垂直居中

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<style>
			.container{
				width: 100px;
				height:50px;
				border: 1px solid black;
				display: table-cell;	/* 模擬為td單元格,同時形成了 BFC */
                /*display: table-caption  如果設置為此項 則不能使用水平和垂直居中*/ 
				vertical-align: middle; /* 垂直居中*/
				text-align: center;		/* 水平居中*/
                margin:50px; 	 /* table-cell 對 margin 不感知,此處設置無效*/
			}
		</style>
	</head>
	<body>
		<div class="container">
			a
		</div>
		<div class="container">
			b
		</div>
		<div class="container">
			c
		</div>
	</body>
</html>

display: table-cell

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<style>
			.con{
				background: red;
				display: table; /* 將父元素div模擬為塊級表格 table*/
				margin: 50px;   /* 設置父元素 table 的margin*/
			}
			.container{
				width: 200px;
				height:50px;
				border: 1px solid black;
				display: table-cell;	 	
				vertical-align: middle; 
				text-align: center;		
				/*margin: 50px;*/  去掉設置無效的 margin
			}
		</style>
	</head>
	<body>
		<div class="con">
			<div class="container">
			a
			</div>
			<div class="container">
				b
			</div>
			<div class="container">
				c
			</div>
		</div>
		
	</body>
</html>

外層div模擬為table,設置出margin

子元素table-cell自動撐滿父元素table

模擬之后,其屬性的使用,就可以將其視作一個標簽進行使用。


reference

display:table-cell實現水平垂直居中

css Table布局-display:table

CSS布局奇淫技巧之--各種居中


免責聲明!

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



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