垂直居中的几种方式
1.line-height 属性
line-height一般用于设置子级为行的的元素,当line-height设置的和父级元素height相等的时候实现垂直居中
<style> .box{ width: 300px; height: 300px; background: #f00; text-align: center; } .box span{ background: #fff; line-height: 300px; } </style> </head> <body> <div class="box"> <span>要剧中的内容</span> </div> </body>
2.使用flex布局
<style> .box{ width: 300px; height: 300px; background: #f00; display: flex; justify-content: center;/*水平居中*/ align-items: center;/*垂直居中中*/ } .box span{ background: #fff; } </style> </head> <body> <div class="box"> <span>要剧中的内容</span> </div> </body>
3.绝对定位+transfrom属性
<style> .box{ width: 300px; height: 300px; background: #f00; position: relative; } .box span{ position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);/*参照自己当前的位置,向 x, y轴 进行平移*/ display: block; width: 100px; height: 100px; background: #fff; } </style> </head> <body> <div class="box"> <span>要剧中的内容</span> </div> </body>
4.通过绝对定位 + margin auto
<style> .box{ width: 300px; height: 300px; background: #f00; position: relative; } .box span{ position: absolute; left: 0; right: 0; top: 0; bottom: 0; margin: auto; display: block; width: 100px; height: 100px; background: #fff; }
/*也可以使用另一种方式,把margin设为自身的一般进行偏移*/
.box span{
position: absolute;
left: 50%;
top: 50%;
margin-top: -50px;
margin-left: -50px;
display: block;
width: 100px;
height: 100px;
background: #fff;
}
</style> </head> <body> <div class="box"> <span>要剧中的内容</span> </div> </body>