国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > CSS > 正文

使用3行CSS代碼使任何元素垂直居中

2024-07-11 08:40:46
字體:
來源:轉載
供稿:網友

在頁面設計中,使元素水平居中是比較簡單的事情。但是如何使元素垂直居中呢?其實,我們通過3行CSS代碼(不包括添加瀏覽器廠商所需的代碼)就可以使任何元素垂直居中。秘訣就是使用transform: translateY屬性,使用這種方法,哪怕是你不知道元素的高度,也可以這個元素垂直居中。

CSS 的transform屬性通常是用來旋轉或縮放元素用的,但是使用它的translateY屬性,我們可以制作元素垂直居中的效果。一般我們在制作元素垂 直居中效果的時候,使用的都是absolute定位,或者是設置一個元素的line-height,但是這些方法都需要預先知道元素的高度,或者是一些單 行文本的情況。

下面來看看實現的CSS代碼(沒有包括瀏覽器廠商的前綴代碼):
.element { position: relative; top: 50%; transform: translateY(-50%);}

我們需要的就是這三句代碼。它和絕對定位技術有一些類似,但是我們沒有在元素上設置高度,或者在它的父元素上使用position屬性。這種方法可以在所有的現代瀏覽器中正常工作,包括IE9。
下面演示了幾個例子:


這是一個垂直居中的文本!
上面的例子的代碼如下:
.valign-image img ,.valign-text p{ position: relative; top: 50%; -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%);}section.valign-image,section.valign-text{ display: block; max-width: 500px; background: #433669; margin: 0 auto 1em; height: 140px; border-radius: .5em; color: white; text-align: center;} .valign-image img,.valign-text p{padding: 1em;}

為了使代碼的使用更加簡單,減少重復工作,我們可以將它寫成Sass mixin,或者一個placeholder selector,將瀏覽器廠商的前綴在這些代碼中補全:
/* Mixin */@mixin vertical-align { position: relative; top: 50%; -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%);}.element p { @include vertical-align;}/* Placeholder selector */%vertical-align { position: relative; top: 50%; -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%);}.element p { @extend %vertical-align;}

擴展
其實,要使一個元素垂直居中的方法有很多,我們可以使用display:table-cell,calc,甚至是絕對定位的方法來使元素垂直居中。看下面的例子:
使用display:table-cell方法使元素垂直居中:
.center-aligned { display: table; background: hsl(120, 100%, 97%); width: 100%; }.center-core { display: table-cell; text-align: center; vertical-align: middle; }
.center-core img { width: 33%; height: auto; }

使用calc()方法使元素垂直居中:
.element{ height: 250px; width: 250px; position: relative; left: calc(50% – 125px);}

使用絕對定位的方法使元素垂直居中:
.element{ position: relative; width: 400px; height: 400px; background: #6699cc;}
.element .sub-element{ position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: auto; width: 200px; height: 200px; background: #fff;}

小結
使元素垂直居中的方法很多,我們要選擇一種適合我們的方法來使用。本文介紹了一種使用transform: translateY來使元素垂直居中的方法,這種方法可以兼容IE9以上的瀏覽器。

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 波密县| 郸城县| 香格里拉县| 固阳县| 佛山市| 湖口县| 辰溪县| 丰镇市| 仪陇县| 大同县| 潼关县| 扶绥县| 浙江省| 仪征市| 辽源市| 蓝田县| 陇西县| 华蓥市| 景德镇市| 祥云县| 茌平县| 濮阳市| 黎城县| 新晃| 霍邱县| 青岛市| 阿拉善左旗| 延寿县| 英山县| 灵武市| 山阳县| 大方县| 砚山县| 惠东县| 永州市| 云霄县| 专栏| 林甸县| 驻马店市| 建瓯市| 双城市|