在網頁設計中,垂直居中是我們經常會遇到的問題。若網頁元素無法垂直居中,不僅給頁面帶來瑕疵,也會影響用戶的使用體驗和頁面優化。因此,掌握CSS垂直居中技巧是非常必要和重要的。
一、寬高已知的元素垂直居中
假如我們有一個寬高都為200px的元素,它位於其父元素的中心位置。那麼,我們該如何讓這個子元素垂直居中呢?
父元素:position: relative;
子元素:position: absolute;
top: 50%;
margin-top: -100px; /* 子元素高度的一半 */
我們通過給子元素設置一個相對定位,並設置子元素的top值為50%。再加上margin-top值為子元素高度的一半,就可以實現高度寬度已知的元素居中。
二、寬高未知的元素垂直居中
如果子元素寬高未知,又該怎麼辦?下面我們先來看一個比較基礎的例子:
父元素:display: table-cell;
vertical-align: middle;
子元素:display: inline-block;
在本例中,我們對父元素以display: table-cell方式進行屬性設置,並在其中添加vertical-align: middle,來實現元素的垂直居中。子元素設置為display: inline-block,可以避免寬度過大導致元素換行。
如果不考慮兼容性問題,我們也可以藉助flex布局來實現。可以使用如下代碼:
.container {
display: flex;
justify-content: center;
align-items: center;
}
使用display: flex可以將子元素集中於父元素中,justify-content: center可以使它們水平居中,align-items: center可以使它們垂直居中。
三、絕對定位元素垂直居中
常見的情況是,我們需要將絕對定位的元素居中顯示。下面介紹兩種方法:
第一種方法是,將絕對定位的元素上下左右都為0,使其定位於父元素中心位置。具體代碼如下:
父元素:position: relative;
子元素:position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
上述代碼會將絕對定位元素左右、上下都擠滿到父元素中心的位置。margin: auto會使其在垂直方向上自動居中。
第二種方法是,使用transform屬性,將絕對定位的元素自身向上移動50%,並算出它的高度的負數值來使其居中顯示。代碼如下:
子元素:position: absolute;
top: 50%;
transform: translateY(-50%);
以上是CSS實現垂直居中的幾種方法,它們的應用場景和使用方法各有不同。我們可以在實際應用中按照要求進行選擇。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/183378.html