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;   
        }
    
  • 相关阅读:
    30流的使用和分类
    使用EF Model First创建edmx模型,数据库有数据的情况下,如何同时更新模型和数据库
    29防止程序集被篡改仿冒,全局程序集缓存GAC
    报错:不允许保存更改。您所做的更改要求删除并重新创建以下表……
    28先判断是否存在,再创建文件夹或文件,递归计算文件夹大小
    27程序集资源
    MVC缓存02,使用数据层缓存,添加或修改时让缓存失效
    26复杂类型比较,使用Compare .NET objects组件
    25LINQ拾遗及实例
    MVC缓存01,使用控制器缓存或数据层缓存
  • 原文地址:https://www.cnblogs.com/slogeor/p/3861913.html
Copyright © 2011-2022 走看看