下面為公共程式碼:
<div class="box">
<div class="small">small</div>
</div>
複製程式碼
.box {
width: 300px;
height: 300px;
background: #ddd;
}
.small {
background: red;
}
複製程式碼
水平垂直居中-->>absolute
+ margin
實現
absolute
+ margin
第1種
.box {
position: relative;
}
.small {
position: absolute;
top: 50%;
left: 50%;
margin: -50px 0 0 -50px;
width: 100px;
height: 100px;
}
複製程式碼
absolute
+ margin
第2種
.box {
position: relative;
}
.small {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
margin: auto;
width: 100px;
height: 100px;
}
複製程式碼
水平垂直居中-->>absolute
+ calc
實現
.box {
position: relative;
}
.small {
position: absolute;
top: calc(50% - 50px);
left: calc(50% - 50px);
width: 100px;
height: 100px;
}
複製程式碼
水平垂直居中-->>absolute
+ transform
實現
.box {
position: relative;
}
.small {
position: absolute;
top: 50%;
left: 50%;
/* transform: translate(-50%,-50%); */
transform: translate3d(-50%,-50%,0);
width: 100px;
height: 100px;
}
複製程式碼
水平垂直居中-->>轉行內元素
.box {
line-height: 300px;
text-align: center;
font-size: 0px;
}
.small {
padding: 6px 10px;
font-size: 16px;
display: inline-block;
vertical-align: middle;
line-height: 16px;
}
複製程式碼
水平垂直居中-->>table-cell
.box {
display: table-cell;
text-align: center;
vertical-align: middle;
}
.small {
padding: 6px 10px;
display: inline-block;
}
複製程式碼
水平垂直居中-->>flex
flex
第1種
.box {
display: flex;
justify-content: center;
align-items: center;
}
複製程式碼
flex
第2種
.box {
display: flex;
justify-content: center;
}
.small {
align-self: center;
}
複製程式碼
水平垂直居中-->>grid
grid
第1種
.box {
display: grid;
justify-items: center;
align-items: center;
}
複製程式碼
grid
第2種
.box {
display: grid;
}
.small {
justify-self: center;
align-self: center;
}
複製程式碼
grid
第3種
.box {
display: grid;
justify-items: center;
}
.small {
align-self: center;
}
複製程式碼
grid
第4種
.box {
display: grid;
align-items: center;
}
.small {
justify-self: center;
}
複製程式碼