在CSS中,垂直居中是一個經常要解決的問題。當內容的寬和高是固定的時候,垂直居中可以用一些簡單的技巧輕松實現。但是當內容的寬和高是不定的時候,垂直居中就變得更加復雜。
一種常見的方法是使用絕對定位,并將元素的上、下邊距設置為auto:
.parent { position: relative; } .child { position: absolute; top: 50%; transform: translateY(-50%); margin: auto; }
這種方法可以讓元素垂直居中,但是由于元素的寬和高是不定的,所以需要指定父元素的高度,否則元素可能會溢出父元素。
另一種方法是使用Flexbox布局:
.parent { display: flex; align-items: center; justify-content: center; }
這種方法可以讓元素在父元素中水平和垂直居中,而且不需要指定父元素的高度。
最后,如果你需要支持舊版本的瀏覽器,可以考慮使用Table布局:
.parent { display: table; } .child { display: table-cell; vertical-align: middle; }
這種方法可以讓元素垂直居中,但是需要將元素包含在一個Table元素中,這可能會影響網頁的語義和可訪問性。