1.水平居中的 margin: 0 auto;
這個(gè)用于子元素上的敷扫,前提是不受float影響。
2.水平居中的 text-align: center;
img的display:inline-block顿苇;類(lèi)似一樣在不受float影響下進(jìn)行
是在父元素上添加效果讓它進(jìn)行水平居中
3.水平垂直居中(一)定位和需要定位的元素的margin減去寬高的一半
這種方法的局限性在于需要知道需要垂直居中的寬高才能實(shí)現(xiàn),經(jīng)常使用這種方法
<style>
*{
padding: 0;
margin: 0;
}
.box{
width: 300px;
height: 300px;
background:#e9dfc7;
border:1px solid red;
position: relative;
}
img{
width: 100px;
height: 150px;
position: absolute;
top: 50%;
left: 50%;
margin-top: -75px;
margin-left: -50px;
}
</style>
<!--html -->
<body>
<div class="box" >
![](../img1.png)
</div>
</body>
4.水平垂直居中(二)定位和margin:auto;
這個(gè)方法也很實(shí)用税弃,不用受到寬高的限制,也很好用
<style>
*{
padding: 0;
margin: 0;
}
.box{
width: 300px;
height: 300px;
background:#e9dfc7;
border:1px solid red;
position: relative;
}
img{
width: 100px;
height: 100px;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
}
</style>
<!--html -->
<body>
<div class="box" >
![](../img1.png)
</div>
</body>
5.水平垂直居中(三)絕對(duì)定位和transfrom
這個(gè)是不需要知道居中元素的寬高就可以使用的.面試中大部分人會(huì)問(wèn)如果不知道寬高該如何居中纪岁,答這個(gè)
<style>
*{
padding: 0;
margin: 0;
}
.box{
width: 300px;
height: 300px;
background:#e9dfc7;
border:1px solid red;
position: relative;
}
img{
width: 100px;
height: 100px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
</style>
<!--html -->
<body>
<div class="box" >
![](../img1.png)
</div>
</body>
6.水平垂直居中(四)diplay:table-cell
其實(shí)這個(gè)就是把其變成表格樣式,再利用表格的樣式來(lái)進(jìn)行居中则果,很方便
<style>
.box{
width: 300px;
height: 300px;
background:#e9dfc7;
border:1px solid red;
display: table-cell;
vertical-align: middle;
text-align: center;
}
img{
width: 100px;
height: 150px;
/*margin: 0 auto;*/ 這個(gè)也行
}
</style>
<!--html -->
<body>
<div class="box" >
![](../img1.png)
</div>
</body>
7.水平垂直居中(五)flexBox居中
這個(gè)用了C3新特性flex,非常方便快捷幔翰,在移動(dòng)端使用完美,pc端有兼容性問(wèn)題西壮,以后會(huì)成為主流的
<style>
.box{
width: 300px;
height: 300px;
background:#e9dfc7;
border:1px solid red;
display: flex;
justify-content: center;
align-items:center;
}
img{
width: 150px;
height: 100px;
}
</style>
<!--html -->
<body>
<div class="box" >
![](../img1.png)
</div>
</body>
8.水平垂直居中(六)利用vertical-align:middle;
這個(gè)方法關(guān)鍵要有一個(gè)和容器一樣高的元素作為居中的一個(gè)參照就像b元素一樣
<style>
.wrap{
width:300px;
height:300px;
background:rgba(0,0,0,0.5);
text-align:center;
font-size:0;
}
.vamb{
display:inline-block;
width:0px;
height:100%;
vertical-align:middle;
}
.test{
display:inline-block;
vertical-align:middle;
font-size:16px;
text-align:left;
background:red;
}
</style>
<body>
<div class="wrap">
<b class="vamb"></b>
<div class="test">
寬高不定<br>
垂直水平居中
</div>
</div>
</body>