• [转]移动端实现垂直居中的几种方法


    垂直居中是布局中十分常见的效果之一,为实现良好的兼容性,PC端实现垂直居中的方法一般是通过绝对定位,table-cell,负边距等方法。有了css3,针对移动端的垂直居中就更加多样化。

    方法1:table-cell

    html结构:

    <div class="box box1">
        <span>垂直居中</span>
    </div>

    css:

    .box1{    
        display: table-cell;    
        vertical-align: middle;    
        text-align: center;            
    }

    方法2:display:flex

    .box2{    display: flex;    justify-content:center;    align-items:Center;}

    方法3:绝对定位和负边距

    .box3{
        position:relative;
    }
    .box3 span{           
         position: absolute;          
         width:100px;          
         height: 50px;           
         top:50%;           
         left:50%;            
         margin-left:-50px;            
         margin-top:-25px;           
         text-align: center;       
     }    

    方法4:绝对定位和0

    .box4 span{ 
         width: 50%;   
         height: 50%;    
         background: #000; 
         overflow: auto;   
         margin: auto;   
         position: absolute;   
         top: 0; 
         left: 0;
         bottom: 0; 
         right: 0;  
    }

    这种方法跟上面的有些类似,但是这里是通过margin:auto和top,left,right,bottom都设置为0实现居中,很神奇吧。不过这里得确定内部元素的高度,可以用百分比,比较适合移动端。

    方法5:translate

    .box6 span{            
        position: absolute;            
        top:50%;            
        left:50%;            
        width:100%;            
        transform:translate(-50%,-50%);            
        text-align: center;        
    }

    这实际上是方法3的变形,移位是通过translate来实现的。

    方法6:display:inline-block

    .box7{  
        text-align:center;  
         font-size:0;
    }
    .box7 span{  
        vertical-align:middle;  
         display:inline-block;  
         font-size:16px;
    }
    .box7:after{ 
         content:'';  
        width:0;  
        height:100%; 
         display:inline-block;  
        vertical-align:middle;
    }

    这种方法确实巧妙...通过:after来占位。

    方法7:display:flex和margin:auto

    .box8{    
        display: flex;    
        text-align: center;
    }
    .box8 span{
        margin: auto;
    }

    方法8:display:-webkit-box

    .box9{   
         display: -webkit-box;   
         -webkit-box-pack:center;  
         -webkit-box-align:center;   
         -webkit-box-orient: vertical;    
         text-align: center
    }

    。。。。。。。

    转自:http://www.th7.cn/web/html-css/201504/98912.shtml

  • 相关阅读:
    第八周学习进度总结
    全国(球)疫情信息可视化
    第六周学习进度总结
    手把手教你爬取B站弹幕!
    Xpath基础学习
    团队成员及选题介绍
    第五周学习进度
    课堂练习之疫情APP
    SpringMVC02
    06 | 链表(上):如何实现LRU缓存淘汰算法?
  • 原文地址:https://www.cnblogs.com/lixiangyong/p/4784139.html
Copyright © 2020-2023  润新知