本人博文原地址: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;實現水平居中
存在問題:需額外處理inline-block的瀏覽器兼容性(解決inline-block元素的空白間距)
(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;
}
參考文章:
https://www.w3cplus.com/css/elements-horizontally-center-with-css.html
http://blog.sina.com.cn/s/blog_c112a2980102xt3y.html