方法一: 容器確定寬高:知識點:transform只能設置在display為block的元素上。 方法一效果圖: 方法二: ...
方法一:
容器確定寬高:知識點:transform只能設置在display為block的元素上。
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
#container{
width: 500px; /* 確定!*/
height: 300px;
background-color: pink;
}
#child{
width: 100px; /* 如果沒有寬度,div充滿容器,怎麼水平居中 */
position: relative; /* 相對父容器進行定位,規定top left值 */
top: 50%;
left: 50%;
transform: translate(-50%, -50%); /* 如果不設置這個,其實是子div的左上原點是水平垂直居中,這個translate百分比是自身的百分比*/
text-align: center; /* 裡面的文字居中 */
}
</style>
</head>
<body>
<div id="container">
<div id="child">哈哈哈哈</div>
</div>
</body>
方法一效果圖:
方法二:
利用 flex 佈局
實際使用時應考慮相容性,flex不相容ie9
父容器高度沒有設置,那麼其高度就是子容器撐開的,也就沒有垂直居中這一說,只需要水平居中即可。
.container {
display: flex;
align-items: center; /* 垂直居中 */
justify-content: center; /* 水平居中 */
}
.container div {
width: 100px;
height: 100px;
background-color: pink; /* 方便看效果 */
}