非常简洁易懂,排名不分先后,开整!
HTML:
<div class="main">
<div class="content"></div>
</div>
第一种:常见的margin
.main {
position: relative;
width: 800px;
height: 500px;
background-color: lightblue;
}
.content {
position: absolute;
width: 300px;
height: 200px;
top: 50%;
left: 50%;
margin-left: -150px;
margin-top: -100px;
background: lightpink;
}
第二种:position+transform
.main {
position: relative;
width: 800px;
height: 500px;
background-color: lightblue;
}
.content {
position: absolute;
width: 300px;
height: 200px;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: lightpink;
}
第三种:通过position的top、right、bottom、left
.main {
position: relative;
width: 800px;
height: 500px;
background-color: lightblue;
}
.content {
position: absolute;
width: 300px;
height: 200px;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: lightpink;
margin: auto;
}
第四种:display:table-cell
.main {
width: 800px;
height: 500px;
background: lightblue;
display: table-cell;
/*标配*/
vertical-align: middle;
/*标配*/
}
.content {
width: 300px;
height: 200px;
background: lightpink;
margin: auto;
/*标配*/
}
/*三个标配一起使用才能发挥作用*/
第五种:calc,不能大量使用,会影响性能
.main {
width: 800px;
height: 500px;
background-color: lightblue;
}
.content {
width: 300px;
height: 70px;
background: lightpink;
margin: auto;
position: relative;
top: calc((100% - 70px)/2);
}
第六种:flex+align-items
.main {
display: flex;
width: 800px;
height: 500px;
background-color: lightblue;
justify-content: center;
align-items: center;
}
.content {
width: 300px;
height: 200px;
background: lightpink;
}
第七种:flex+align-self
.main {
display: flex;
width: 800px;
height: 500px;
background-color: lightblue;
justify-content: center;
text-align: center;
}
.content {
width: 300px;
height: 200px;
background: lightpink;
align-self: center;
}
第八种:flex+margin
.main {
display: flex;
width: 800px;
height: 500px;
background-color: lightblue;
}
.content {
width: 300px;
height: 200px;
background: lightpink;
margin: auto;
}
第九种:grid+align-content
.main {
display: grid;
width: 800px;
height: 500px;
background-color: lightblue;
justify-content: center;
align-content: center;
}
.content {
width: 300px;
height: 200px;
background: lightpink;
}
第十种:grid+align-item
.main {
display: grid;
width: 800px;
height: 500px;
background-color: lightblue;
justify-content: center;
align-items: center;
}
.content {
width: 300px;
height: 200px;
background: lightpink;
}
第十一种:grid+align-self
.main {
display: grid;
width: 800px;
height: 500px;
background-color: lightblue;
justify-content: center;
}
.content {
width: 300px;
height: 200px;
background: lightpink;
align-self: center;
}
第十二种:grid+margin
.main {
width: 800px;
height: 500px;
display: grid;
background: lightblue;
}
.content {
width: 300px;
height: 200px;
margin: auto;
background: lightpink;
}
第十三种:grid+palce-content
.main {
width: 800px;
height: 500px;
display: grid;
place-content: center;
/*这是justy-content与align-items的结合写法*/
background-color: lightblue;
}
.content {
width: 300px;
height: 200px;
background: lightpink;
}
第十四种:grid+place-items
.main {
display: grid;
width: 800px;
height: 500px;
background-color: lightblue;
place-items: center;
}
.content {
width: 300px;
height: 200px;
background: lightpink;
}
第十五种:grid+template
.main {
margin: auto;
width: 800px;
height: 500px;
background-color: lightblue;
display: grid;
grid-template-columns: 1fr auto 1fr;
grid-template-rows: 1fr auto 1fr;
grid-template-areas: '. . .' '. amos .' '. . .';
}
.content {
width: 300px;
height: 200px;
background: lightpink;
grid-area: amos;
}
好啦,十五种方法Get!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。