黄冈渭虐大药房有限公司

常用的css垂直居中方案

CSS 發(fā)布時(shí)間:2022/07/12 閱讀量:1412 來(lái)源:優(yōu)尚設(shè)計(jì)
在進(jìn)行HTML制作頁(yè)面的過(guò)程中,總會(huì)遇到需要將元素或者文字進(jìn)行水平垂直居中的要求。下面優(yōu)尚設(shè)計(jì)就為大家介紹 CSS 中幾種常用到的水平垂直居中的方法。

行內(nèi)元素(單行文字垂直居中)

要點(diǎn):設(shè)置 line-height = height

.test {
	height: 200px;
	border: 1px solid red;
	line-height: 200px
}

塊級(jí)元素:絕對(duì)定位

優(yōu)點(diǎn):兼容性不錯(cuò)
缺點(diǎn):需要提前知道尺寸

.parent {
	position: relative;
	height: 200px
}
.child {
	position: absolute;
	top: 50%;
	left: 50%;
	margin-top: -20px;
	margin-left: -40px;
	width: 80px;
	height: 40px;
	background: #00f
}

塊級(jí)元素:絕對(duì)定位 + transform

優(yōu)點(diǎn):不需要提前知道尺寸
缺點(diǎn):兼容性不好

.parent {
	position: relative;
	height: 200px
}
.child {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 80px;
	height: 40px;
	background: #00f;
	transform: translate(-50%,-50%)
}

塊級(jí)元素:絕對(duì)定位 + margin: auto;

優(yōu)點(diǎn):不需要提前知道尺寸,兼容性好
缺點(diǎn):這個(gè)方法是我最喜歡用的一個(gè),要說(shuō)缺點(diǎn)的話,我目前還不知道。

.parent {
	position: relative;
	height: 200px
}
.child {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	width: 80px;
	height: 40px;
	background: #00f
}

塊級(jí)元素:padding

缺點(diǎn):如果高度固定,需要提前計(jì)算尺寸(只在某些特定情況適用)

.parent {
	padding: 5% 0
}
.child {
	padding: 10% 0;
	background: #00f
}

塊級(jí)元素:display: table-cell

.parent {
	display: table;
	width: 600px;
	height: 200px;
	border: 1px solid red
}
.child {
	display: table-cell;
	vertical-align: middle
}

或者:

.parent {
	display: table-cell;
	height: 300px;
	border: 1px solid red;
	vertical-align: middle
}

同樣適用于多行文字的垂直居中處理

HTML代碼:

<div class="parent">
  <span class="child">深圳市優(yōu)尚企業(yè)形象設(shè)計(jì)有限公司成立于2013年,十年來(lái)一直立足深圳,面向全國(guó)。為品牌和企業(yè)提供品牌網(wǎng)站建設(shè)、集團(tuán)網(wǎng)站建設(shè)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、小程序開(kāi)發(fā)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站搜索引擎優(yōu)化、品牌口碑營(yíng)銷(xiāo)等服務(wù)。我們通過(guò)商業(yè)策略、技術(shù)實(shí)現(xiàn)、情感連結(jié)融入互聯(lián)網(wǎng)設(shè)計(jì)來(lái)創(chuàng)造具有活力的網(wǎng)站視覺(jué)及營(yíng)銷(xiāo)體驗(yàn),結(jié)合線上資源來(lái)實(shí)現(xiàn)有效的價(jià)值傳播</span>
</div>

CSS代碼:

.parent {
	display: table-cell;
	width: 400px;
	height: 300px;
	border: 1px solid red;
	vertical-align: middle
}
.child {
	display: inline-block;
	background: #00f;
	vertical-align: middle
}

塊級(jí)元素:display: flex

缺點(diǎn):兼容性不好

.parent {
	display: flex;
	width: 600px;
	height: 200px;
	border: 1px solid red;
	align-items: center;
	justify-content: center
}
.child {
	background: #00f
}

塊級(jí)元素:偽元素

.parent {
	width: 300px;
	height: 300px;
	border: 1px solid red;
	text-align: center
}
.child {
	display: inline-block;
	width: 100px;
	height: 40px;
	background: #00f;
	vertical-align: middle
}
.parent::before {
	display: inline-block;
	height: 100%;
	content: ''
	vertical-align: middle
}

塊級(jí)元素:calc()

缺點(diǎn):兼容性太差,需要計(jì)算,并不推薦。

.parent {
	position: relative;
	width: 300px;
	height: 300px;
	border: 1px solid red
}
.child {
	padding: -webkit-calc((100% - 100px)/ 2);
	padding: -moz-calc((100% - 100px)/ 2);
	padding: -ms-calc((100% - 100px)/ 2);
	padding: calc((100% - 100px)/ 2);
	width: 100px;
	height: 100px;
	background: #00f;
	background-clip: content-box
}

塊級(jí)元素:inline-block

HTML 代碼:

<div class="parent">
  <div class="child">深圳市優(yōu)尚企業(yè)形象設(shè)計(jì)有限公司</div>
  <div class="brother">十年來(lái)一直立足深圳,面向全國(guó)</div>
</div>

CSS 代碼:

.parent {
	position: relative;
	width: 400px;
	height: 400px;
	border: 1px solid red
}
.brother,.child {
	display: inline-block;
	vertical-align: middle
}
.child {
	background: #00f;
	font-size: 12px
}
.brother {
	height: 400px;
	font-size: 0
}

表格元素:table

當(dāng)然,還有一種方法,就是使用 table 布局:因?yàn)?html 還要加 table 等標(biāo)簽,冗余有點(diǎn)多,而且結(jié)構(gòu)也改變了。

<table>
  <tr>
    <td align="center" valign="middle">content</td>
  </tr>
</table>
文章標(biāo)簽: 垂直居中 CSS
您可能感興趣的內(nèi)容
微信
網(wǎng)站定制咨詢 網(wǎng)站定制咨詢