文本居中:style="text-align:center;line-height == heigh"
水平居中: 设置元素宽度后,设置margin: 0 auto;(把左和右外边距设置为 auto,规定的是均等地分配可用的外边距。结果就是居中的元素)
margin:auto;也只是水平居中,因为“如果”margin-top“或”margin-bottom“为”auto“,则其使用值为0”,结果等于margin: 0 auto;
水平垂直居中:
方法1:首先,创建两个方形,一个包含在另一个里面,我们希望里面的那一个相对于外面的那个来定位,则需要用到position属性<!DOCTYPE html><html lang="en">
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div { width: 200px; height: 200px; background-color: springgreen; position: relative; } .box { width: 100px; height: 100px; background-color: slateblue; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); } </style> </head> <body> <div> <div class="box"></div> </div> </body> </html>
内层元素的position: absolute; 外层元素的position: relative; 内层元素会一直往外层元素找,找到position为relative的元素后,相对这个元素定位,如果没找到,按最外层body定位
当不设置transform时的效果图如左图,我们希望居中,则将内层方块往上和左移动它的50%的距离即可,则设置transform后的样式如右图
方法2 :将元素的 left bottom top right 全部设为0,再设置margin:auto;
div { width: 200px; height: 200px; background-color: springgreen; position: relative; } .box { width: 100px; height: 100px; background-color: slateblue; position: absolute; /* position: fixed; */ left: 0; top: 0; right: 0; bottom: 0; margin: auto; }
如果想相对整个页面居中,则将position设置为fixed即可。