CSS实现垂直居中的方法

CSS实现垂直居中的方法

1、relative+absolute定位:

(1)css+html代码

 1 <!doctype html>
 2 <html lang="en">
 3 
 4     <head>
 5         <meta charset="UTF-8" />
 6         <title>Document</title>
 7         <style type="text/css">
 8             * {
 9                 margin: 0;
10                 padding: 0;
11             }
12             
13             .parent {
14                 width: 400px;
15                 height: 400px;
16                 margin: 100px;
17                 border: 1px solid red;
18                 position: relative;
19             }
20             
21             .child {
22                 width: 200px;
23                 height: 200px;
24                 border: 1px solid green;
25                 position: absolute;
26                 top: 0;
27                 left: 0;
28                 right: 0;
29                 bottom: 0;
30                 margin: auto;
31             }
32         </style>
33     </head>
34 
35     <body>
36         <div class="parent">
37             父元素
38             <div class="child">
39                 子元素
40             </div>
41         </div>
42     </body>
43 
44 </html>

(2)效果

(3)兼容性

兼容全部浏览器

2、flex布局:

(1)html+css代码

 1 <!doctype html>
 2 <html lang="en">
 3 
 4     <head>
 5         <meta charset="UTF-8" />
 6         <title>Document</title>
 7         <style type="text/css">
 8             * {
 9                 margin: 0;
10                 padding: 0;
11             }
12             
13             .parent {
14                 width: 400px;
15                 height: 400px;
16                 margin: 100px;
17                 border: 1px solid red;
18                 display: flex;
19                 justify-content: center;
20                 align-items: center;
21             }
22             
23             .child {
24                 width: 200px;
25                 height: 200px;
26                 border: 1px solid green;
27             }
28         </style>
29     </head>
30 
31     <body>
32         <div class="parent">
33             <div class="child">
34                 子元素
35             </div>
36         </div>
37     </body>
38 
39 </html>

 

 

(2)效果

(3)兼容性

根据caniuse(http://caniuse.com/#search=flex)

对于IE浏览器,需要IE10以及以上。

3、relative+transform定位:

(1)html+css代码

 1 <!doctype html>
 2 <html lang="en">
 3 
 4     <head>
 5         <meta charset="UTF-8" />
 6         <title>Document</title>
 7         <style type="text/css">
 8             * {
 9                 margin: 0;
10                 padding: 0;
11             }
12             
13             .parent {
14                 width: 400px;
15                 height: 400px;
16                 margin: 100px;
17                 border: 1px solid red;
18             }
19             
20             .child {
21                 width: 200px;
22                 height: 200px;
23                 border: 1px solid green;
24                 position: relative;
25                 top: 50%;
26                 left: 50%;
27                 transform: translate(-50%, -50%);
28             }
29         </style>
30     </head>
31 
32     <body>
33         <div class="parent">
34             <div class="child">
35                 子元素
36             </div>
37         </div>
38     </body>
39 
40 </html>

 

(2)效果

(3)兼容性

根据caniuse(http://caniuse.com/#search=translate)

对于IE浏览器,需要IE10以及以上。

 

总结:

根据项目浏览器兼容性要求,选择合适的垂直居中的方案。方案2和方案3适合用在移动端项目,方案1兼容性方面最好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值