1. 程式人生 > >css實現水平居中的幾種方式

css實現水平居中的幾種方式

一、對於行內元素

text-align:center;

二、對於確定寬度塊級元素:

(1)margin和width實現水平居中

常用(前提:已設定width值):margin-left:auto; margin-right:auto;

(2)絕對定位和margin-left: -(寬度值/2)實現水平居中

固定寬度塊級元素水平居中,通過使用絕對定位,以及設定元素margin-left為其寬度的一半

.content{

width: 200px;

position: absolute;

left: 50%;

margin-left: -100px; // 該元素寬度的一半,即100px

background-color: aqua;

}

(3)position:absolute + (left=0+top=0+right=0+bottom=0) + margin:auto

.content{

position: absolute;

width: 200px;

top: 0;

right: 0;

bottom: 0;

left: 0;

margin: auto;

}

三、對於未知寬度塊級元素:

(1)table標籤配合margin左右auto實現水平居中

使用table標籤(或直接將塊級元素設值為display:table),再通過給該標籤新增左右margin為auto

(2)inline-block實現水平居中方法

display:inline-block;(或display:inline)和text-align:center;實現水平居中

(3)絕對定位實現水平居中

  • 絕對定位+transform,translateX可以移動本省元素的50%

.content{

position: absolute;

left: 50%;

transform: translateX(-50%); /* 移動元素本身50% */

background: aqua;

}

(4)相對定位實現水平居中

  • 用float或者display把父元素變成行內塊狀元素

.contentParent{

display: inline-block; /* 把父元素轉化為行內塊狀元素 */

/*float: left; 把父元素轉化為行內塊狀元素 */

position: relative;

left: 50%;

}

/*目標元素*/

.content{

position: relative;

right: 50%;

background-color:aqua;

}

(5)CSS3的flex實現水平居中方法,法一

.contentParent{

display: flex;

flex-direction: column;

}

.content{

align-self:center;

}

(6)CSS3的flex實現水平居中方法,法二

.contentParent{

display: flex;

}

.content{

margin: auto;

}

(7)CSS3的fit-content配合左右margin為auto實現水平居中方法

.content{

width: fit-content;

margin-left: auto;

margin-right: auto;

}

參考文章: