zoukankan      html  css  js  c++  java
  • 实现文字图片垂直居中的总结性方法

    首先附带HTML代码

    <div class="box box1 box2 box3 box4 box5 box7 box8 box9">
    	    <div>垂直居中</div>
    </div>
    

    接着附带box为公共样式

    .box{
    		 200px;
    		height: 200px;
    		background: pink;
    }
    

    第一种方法box1:display: table-cell;

    兼容ie8及以上。适用于文字与图片

    css代码如下:

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

    第二种方法box2:display: flex;

    兼容ie10及以上。适用于文字与图片

    css代码如下:

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

    第三种方法box3:绝对定位和负边距;

    兼容ie6及以上。适用于文字与图片

    但是需要注意的是,需要设置准备的宽高,并且使用的负边距为宽高的一半

    css代码如下:

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

    第四种方法box4:绝对定位与margin;

    兼容ie8及以上。适用于文字与图片

    关键在于margin与子绝父相

    css代码如下:

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

    第五种方法box5:绝对定位与transform;

    兼容ie9及以上。适用于文字与图片

    ie8不支持transform,所以会出现兼容性问题

    css代码如下:

    .box5{    
    position:relative;
    }
    
    .box5 img{  
         50%;   
        height: 50%;           
        position: absolute;            
        top:50%;            
        left:50%;                        
        transform:translate(-50%,-50%);            
        text-align: center;        
    }
    

    第六种方法box6:伪元素;

    兼容ie8及以上。适用于文字与图片

    一直对伪元素了解不够深,之后会对做更加透彻的分析,所以并不打算多做解释

    css代码如下:

    .box7{  
         text-align:center;  
        }
    .box7 img{  
         vertical-align:middle;  
         display:inline-block;  
         }
    .box7:after{ 
        content:'';  
        0;  
        height:100%; 
        display:inline-block;  
        vertical-align:middle;
    }

    第七种方法box7:弹性盒方法;

    不兼容所有ie浏览器

    适用于文字与图片。也是我最喜欢的一种方法。但是对ie浏览器并不友好。更推荐在手机端使用

    css代码如下:

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

    第八种方法box8:display: -webkit-box;;

    同样适用于手机端,ie端全部爆炸

    css代码如下:

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

    原文链接:http://www.jiangweishan.com/article/duiqi213124124124.html

  • 相关阅读:
    node-sass安装失败问题
    通过JS下载 or 唤起App
    获取地址栏参数
    JS获取浏览器可视区域的尺寸
    Pyhton2.x 和Python3.x
    导入一个AndroidStudio工程作为一个Library Module
    win10 右键菜单添加Git Hash Here
    CTRL-Space always toggles Chinese IME (Windows 7、10)
    DOM解析XML报错:Content is not allowed in prolog
    重复安装相同包名APK出现的问题。
  • 原文地址:https://www.cnblogs.com/liyouwu/p/9003661.html
Copyright © 2011-2022 走看看