在很多时候我们在写网页的时候都会为了页面效果将元素居中,在这里呢我也归纳总结了几种元素居中的方法,有针对已知大小元素的居中方法和未知大小元素的居中方法。
我们先来看看已知大小元素的居中方法吧:
已知大小的元素在浏览器可视窗口水平垂直居中的方法:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <style> * { margin: 0; padding: 0; } .box{ 200px; height: 200px; background-color: #FF7F50; position: fixed; left: 50%; top: 50%; margin: -100px 0 0 -100px; } </style> <body> <div class="box"></div> </body> </html>
这里我们运用固定定位,为了达到居中的效果我们需要减去盒子自身宽高的一半,这样才能做到完美的居中效果。
2.未知大小的元素在浏览器的可视窗口中水平垂直居中的方法:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <style> * { margin: 0; padding: 0; } .box{ position: fixed; left: 0; top: 0; right: 0; bottom: 0; margin: auto; } </style> <body> <img class="box" src="../img/img.png" > </body> </html>
效果如图所示:
3.已知大小的元素在父元素中水平居中的方法:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <style> * { margin: 0; padding: 0; } .bbox { 500px; height: 500px; border: 1px solid #999999; position: relative; } .box { 100px; height: 100px; background-color: #FF7F50; position: absolute; left: 50%; top: 50%; margin: -50px 0 0 -50px; } </style> <body> <div class="bbox"> <div class="box"></div> </div> </body> </html>
效果如下:
4.未知大小的元素在父元素中水平垂直居中的方法:(法1)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <style> * { margin: 0; padding: 0; } .bbox { 500px; height: 500px; border: 1px solid #999999; text-align: center; } img { vertical-align: middle; } span { height: 100%; display: inline-block; vertical-align: middle; } </style> <body> <div class="bbox"> <img src="../img/img.png" > <span></span> </div> </body> </html>
在这里我们的居中方式运用了text-align和vertical-align,需要注意的是垂直居中需要有参考物,所以我添加了一个span,将其设置为行内块元素,高度占满父元素的100%,这样图片就可以与span相互参考从而达到垂直居中的效果。
效果如下:
5.未知大小的元素在父元素中水平垂直居中的方法(法2)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <style> * { margin: 0; padding: 0; } .bbox { 500px; height: 500px; border: 1px solid #999999; text-align: center; display: table-cell; vertical-align: middle; } </style> <body> <div class="bbox"> <img src="../img/img.png" > </div> </body> </html>
与上一个方法相比这里不同的是我运用了display:table-cell;他可以将元素设置成表格单元格,再添加vertical-align:middle;就可以实现居中。
以上是本人在学习过程中总结的元素居中的方法,如果哪里有理解不到位的地方欢迎大家指出。