•對於行內元素:
給如果父級元素是塊級元素,則直接給父級元素設定text-align: center;
如果父級不是塊級元素,則先將其父元素設定為塊級元素,再給父元素設定 text-align: center;
•對於確定寬度的塊級元素:
width和margin實現。margin: 0 auto;
首先設定父元素為相對定位,再設定子元素為絕對定位,設定子元素的left:50%。設定絕對子元素的 margin-left: -元素寬度的一半px; 或者設定transform: translatex(-50%);
• 對於寬度未知的塊級元素
inline-block實現水平居中方法。該元素display:inline-block,它的父元素設定text-align:center實現水平居中。
絕對定位+transform,translatex可以移動本身元素的50%。
display
:absolute;
left
:50%;
transform
:translate
(-50%)
table標籤配合margin左右auto實現水平居中。使用table標籤(或直接將塊級元素設值為display:table),再通過給該標籤新增左右margin為auto。
flex布局,只需要給待處理的塊狀元素的父元素新增屬性 display: flex; justify-content: center;
•單行的行內元素
利用line-height設定單行行內元素的"行高等於盒子的高"實現居中,這種方法適合純文字類
•對於多行的行內元素
使用給父元素設定display:table-cell;和vertical-align: middle;屬即可;
•對於塊級元素
首先設定父元素為相對定位,再設定子元素為絕對定位,設定子元素的top: 50%。 設定絕對子元素的 margin-top: -元素高度的一半px; 或者設定transform: translatey(-50%);(高度未知的情況下用transform,高度已知的情況下二者都可以用)
flex方案(高度定不定都可以),只需要給待處理的塊狀元素的父元素新增屬性 display: flex; align-items: center;
彈性布局flex(高度定不定都可以):父級設定display: flex; 子級設定margin為auto實現自適應居中(可分別實現水平和垂直的居中)
已知高度和寬度的元素,設定父元素為相對定位,給子元素設定絕對定位,top: 0; right: 0; bottom: 0; left: 0; margin: auto;(水平垂直居中)
讓乙個元素水平垂直居中,到底有多少種方案?
對於寬度未知的塊級元素 利用line height實現居中,這種方法適合純文字類 通過設定父容器相對定位,子級設定絕對定位,標籤通過margin實現自適應居中 彈性布局flex 父級設定display flex 子級設定margin為auto實現自適應居中 父級設定相對定位,子級設定絕對定位,並且通...
如何讓乙個元素水平垂直居中?
這問題大概分為兩種型別,看要求,元素有沒有被設定寬高 1.利用絕對定位 box2.先把元素的左上角定位到 點,在向左和上移動自身寬高的一半 使用margin box3.先把元素的左上角定位到 點,在向左和上移動自身寬高的一半 使用transform平移 box4.先把元素的左上角定位到 點,在向左和...
css高階 04 如何讓乙個元素水平垂直居中?
老闆的手機收到乙個紅包,為什麼紅包沒居中?如何讓乙個子元素在父容器裡水平垂直居中?這個問題必考,在實戰開發中,也應用得非常多。你也許能順手寫出好幾種實現方法。但大部分人的寫法不夠規範,經不起千錘百鍊。換句話說 這些人也就面試的時候夸夸其談,但真的上戰場的時候,他們不敢這麼寫,也不知道怎麼寫最靠譜。這...