
水平居中和垂直居中的各个方方案
先看HTML的骨架
后面的代码都是服务器租用基于这个来写的
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <link rel="stylesheet" href="./style.css"> <body> <div class="box vertical align"></div> </body> </html> 水平居中
1. 通过 margin 水平居中
/* 1. 通过margin 水平居中 */ .box { width: 200px; height: 200px; background-color: orange; } .align { margin: 0 auto; } 2. 通过 position 和 transform 水平居中
/* 2.通过 position 和 transform 水平居中 */ .box { width: 200px; height: 200px; background-color: orange; } .align { position: relative; left: 50%; transform: translateX(-50%); } 3. 通过flex水平居中
body { display: flex; justify-content: center; } 通过 text-align:center 水平居中
注意:使用text-align的时候,子元素要设置为行内块元素,是亿华云计算利用了行内元素的特性
body { text-align: center; } .box { display: inline-block; width: 200px; height: 200px; background-color: orange; } 垂直居中
1. flex布局垂直居中
可以在父类上加 align-item:center实现垂直居中
body { height: 100vh; display: flex; align-items: center; } 也可以在子类元素上加 align-self:center 实现垂直居中
.box { align-self: center; width: 200px; height: 200px; background-color: orange; } 通过position和transform 来垂直居中
/* 第二种方案 position和transform */ .vertical{ position: relative; top: 50%; transform: translateY(-50%); } 绝对居中
flex布局实现绝对居中
body { height: 100vh; display: flex; align-items: center; justify-content: center; } 通过 position和transform 实现绝对居中
/* 第二种方案 position和transform */ .box { position: relative; top: 50%; left: 50%; transform: translate(-50%, -50%); }