css垂直居中@qunar

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

  <style>

  .vertical {
  	width: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{
	width: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;
	width: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%;
	width:0;
	content:‘\0020‘;
	vertical-align:middle;
  }
    </style>

  <div>

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

  IE6-8b不支持

4、利用button实现垂直居中
   /*单行文本对齐:button*/
    .demo{
      width:600px;
      height:100px;
      background:#fcc;
      border: 1px solid #596480;
    }
    button{
      margin:0;
      padding:0;
    }
    .demo button{
      width: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;
        width: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{
        width: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:"\0200";
        overflow:hidden;
        width: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{
        width: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{
        width:134px;
        height:44px;        
        display:inline-block; 
        vertical-align:middle;       
    }
    .logo{
        display:inline-block;
        background:url(./img/logo.png);
        width:134px;
        height:44px;   
    }

css垂直居中@qunar

时间: 2024-08-09 22:02:49

css垂直居中@qunar的相关文章

CSS垂直居中布局方法

整理一下个人认为比较好的CSS垂直居中的布局方法. 1. 绝对定位+负值margin. //长宽的设置只是为了说明,实际使用没有限制 <div id="container-outer"> <div id="container-inner"></div> </div> //CSS #container-outer { width: 200rem; height: 100rem; position: relative; }

最常用的css垂直居中方法

css垂直居中一直以来都是一个被大家说烂了的话题,翻来覆去的炒.不过说实话,正是因为css没有提供标准的垂直居中方法(不过在css3中已经有了相关规范),所以大家才会对它进行专门的研究.这研究来研究去,垂直居中的方法比水平居中都要多了.但又说回来,各种方法人云亦云,不同的方法对于不同层次的人理解起来又有不同,用处也不同.本文结合技术实现的复杂度.理解性的难易度.以及大多数人的接触顺序对常用的垂直居中方法进行分等级的系统讲解,希望能对读者的工作和学习有所帮助. OK,闲话扯了一堆,下面开始正文,先

CSS垂直居中完美有用实例

<!DOCTYPE HTML> <html> <head> <meta meta charset="utf-8"> <title>CSS垂直居中</title> <style type="text/css" media="all"> body{color:black;background-color:white;padding:50px;font-size: 12

CSS垂直居中完美实用实例

<!DOCTYPE HTML> <html> <head> <meta meta charset="utf-8"> <title>CSS垂直居中</title> <style type="text/css" media="all"> body{color:black;background-color:white;padding:50px;font-size: 12

css垂直居中的6种方法

1.通过verticle-align:middle实现CSS垂直居中. 通过vertical-align:middle实现CSS垂直居中是最常使用的方法,但是有一点需要格外注意,vertical生效的前提是元素的display:inline-block. 1 .parents{ 2 background:#ff6600; 3 height:300px; 4 } 5 .children{ 6 background:#ff0000; 7 widht:50%; 8 height:50%; 9 disp

CSS垂直居中6种方法

转自http://blog.csdn.net/wolinxuebin/article/details/7615098 利用CSS进行元素的水平居中,比较简单,行级元素设置其父元素的text-align center,块级元素设置其本身的left 和 right margins为auto即可.本文收集了六种利用css进行元素的垂直居中的方法,每一种适用于不同的情况,在实际的使用过程中选择某一种方法即可. Line-Height Method 试用:单行文本垂直居中,demo 代码: html 1

CSS垂直居中方法整理

CSS定位中常常用到垂直居中,比如覆盖层上的弹框. 兼容性比较好的方法: <!DOCTYPE html PUBliC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head&g

css垂直居中的方法

1.已知宽度高度,绝对定位之负边距margin <style> .absolute-center{ position:absolute; width:100px; height:100px; left:50%; top:50%; margin:-50px 0 0 -50px; border:1px solid #ddd; background-color:red; } </style> </head> <body> <div class="a

CSS垂直居中方法

Hack技术就可以啊!所以在这里我还要啰嗦两句,CSS中的确是有vertical-align属性,但是它只对(X)HTML元素中拥有valign特性的元素才生效,例如表格元素中的<td>.<th>.<caption>等,而像<div>.<span>这样的元素是没有valign特性的,因此使用vertical-align对它们不起作用. 一.单行垂直居中 如果一个容器中只有一行文字,对它实现居中相对比较简单,我们只需要设置它的实际高度height和