zoukankan      html  css  js  c++  java
  • css垂直居中

    1、div的高度已知---line-hight
       <div>
         <span><img src="http://www.baidu.com/img/baidu_sylogo1.gif" alt="Logo" />固定高宽,图片垂直局中</span>
      </div>
    

       <style>

      .vertical {
      	500px;
     	height:220px;
    	line-height:220px;
    	border: 1px solid;
    	text-align: center;
      }
      .vertical img {
    	vertical-align: middle;
      }
      </style>
      <!--[if IE 6]>
      <style>
        .vertical span {
      	height: 100%; /* 要保证和父元素高度一样才行 */
    	writing-mode: tb-rl;
    	vertical-align: middle;
       }
      </style>
      <![endif]-->      
    

    只要给容器设置 line-height 和 height,并使两值相等,再加上 over-flow: hidden

    1.同时支持块级和内联极元素

    2.支持所有浏览器

    3.IE中不支持img等居中

    2、定位方法垂直居中显示图片--height已知
      <style>
      .vertical{
    	300px;
    	height:200px;
    	display:table;
    	text-align:center;
    	border:solid 1px red;
      }
      .vertical span{
    	display:table-cell;
    	vertical-align:middle;
    	border:solid 1px blue;
      }
      .vertical span img{
    	border:dashed 1px green;
      }
      </style>
      <!--[if lte IE 7]>
      <style>
      .vertical{
    	position:relative;
    	overflow:hidden;
      }
      .vertical span{
    	position:absolute;
    	left:50%;
    	top:50%;
      }
      .vertical span img{
    	position:relative;
    	left:-50%;
    	top:-50%;
      }
      </style>
      <![endif]-->
    
       <div>
          <span><img src="http://www.baidu.com/img/baidu_sylogo1.gif" alt="Logo" /></span>
      </div>
    

      vertical-align适用于:内联及 table-cell 元素;text-align适用于块元素

    3、未知高度垂直居中--resiez
      <style type="text/css">
      .demo{
    	resize:both;
    	overflow:hidden;
    	100px;
    	height:100px;
    	background:#aaa;
    	display:inline-block;
    	font-size:0; 
      }
      .demo p{
    	display:inline-block;
    	vertical-align:middle;
    	font-size:16px;
      }
      .demo::after{
    	display:inline-block;
    	height:100%;
    	0;
    	content:'020';
    	vertical-align:middle;
      }
        </style>
    

       <div>

    	<p>ddd</p>
      </div>
    

      IE6-8b不支持

    4、利用button实现垂直居中
       /*单行文本对齐:button*/
        .demo{
          600px;
          height:100px;
          background:#fcc;
          border: 1px solid #596480;
        }
        button{
          margin:0;
          padding:0;
        }
        .demo button{
          0;
          height:100px;
          vertical-align:middle;
          overflow:hidden;
        }
        .demo span{
          /*这个不能省*/
          vertical-align:middle;
        }
    
      <h2>单行文本垂直居中:button</h2> 
      <div class="demo">
        <button>test</button>
        <span>单行文本垂直对齐:button,不能居中对齐</span>
      </div>
    

       此方法不可以实现文本居中对齐

    5、多行文本对齐:定位+百分比
      <h2>多行文本垂直居中:定位+百分比</h2>
      <div class="mul-text">
          <div class="outter">
             <span class="inner">
                 多行文本垂直居中多行文本垂直居中多行文本垂直居中多行文本垂直居中多行文本垂直居中多行文本垂直居中
                 多行文本垂直居中多行文本垂直居中
            </span>
         </div>
      </div>
    
         /*多行文本居中:1*/
        .mul-text{
            display: table-cell;
            600px;
            height: 100px;
            vertical-align: middle;
            text-align:center;
            border: 1px solid #596480;
            background: #ffc;
            /*兼容ie6,7*/
            *position: relative;
          }
        .outter{
            /*该div相对父div(class=mul-text)垂直对齐,使用的是绝对定位*/
            *position: absolute;
            *top: 50%;
            *left: 0;
        }
        .inner{
            /*相对父div(class=outter)进行相对定位,inner
            会相对outter行框进行显示*/
            *position: relative;
            /*设置top可以使得inner相对outter居中*/
            *top: -50%;
            *left: 0;        
        }
    
    6、多行文本垂直居中:after
        <h2>多行文本垂直居中:after</h2>
        <div class="mul-text-2">           
          <span class="inner-2">
             多行文本显示多行文本显示多行文本显示多行文本显多行示多行文本显示多行文本
          </span>
          <span></span>           
       </div>
    
         /*多行文本对齐:after*/
        .mul-text-2{
            600px;
            height:100px;
            background:#aa8;
            /*font-size不能少*/
            font-size:0;
            overflow:hidden;
            text-align:center;
        }
        .inner-2,.after,.mul-text-2:after{
            display:inline-block;
            vertical-align:middle;
        }
        .inner-2{
            font-size:18px;
        }
        .after,.mul-text-2:after{
            /*清除浮动*/
            content:"200";
            overflow:hidden;
            0;
            height:100px;
            visibility:hidden;
        }
    
    7、背景图片居中
       <h2>图片垂直居中:行高</h2>    
       <div class="img-text">
           <span>sssssss1</span>
           <div class='img-div'><i></i></div>
       </div>
    
        /*背景图片*/
        .img-text{
            600px;
            height:100px;
            border:#f63;
            border: 1px solid #596480;   
            vertical-align:middle; 
            text-align:center; 
            font-size:0;  
    
        }
         
        .img-text span{
            font-size:15px;
            display:inline-block;
            height:100px;
            line-height:100px;
        }
    
        .img-div{
            134px;
            height:44px;        
            display:inline-block; 
            vertical-align:middle;       
        }
        .logo{
            display:inline-block;
            background:url(./img/logo.png);
            134px;
            height:44px;   
        }
    
  • 相关阅读:
    [AX]AX2012激活HTTP适配器AIF端口提示错误“The deployment web site was not found for port”
    [AX]AX2012 嵌套使用Data contract class
    [AX]AX2012 对SSRS报表参数分组
    [AX]AX2012 SSRS报表的语言本地化
    [AX]AX2012 Number sequence framework :(二)实现自定义模块的Number sequence
    [AX]AX3中使用LedgerBalanceSum计算科目余额期间发生额
    [AX]AX2012 域管理员组成员没有权限部署报表
    [C#] 在C#中使用HOOK监视鼠标消息的问题
    服务器端获取客户端信息(时间 etc..)
    MSBuild version 与 ToolsVersion 的区别
  • 原文地址:https://www.cnblogs.com/slogeor/p/3861913.html
Copyright © 2011-2022 走看看