多行垂直居中

废话少说,直接上例子!!!

  • display:table

    Html代码:

      <div class="wrapper">
    <div class="content">
    <span>我是很短的文本</span>
    <span>我是很长的文本,内容非常多多多多多多多多多多多多...</span>
    <div>我只是一个div标签</div>
    <img src="..." style="width:200px;height:200px;"/>
    </div>
    </div>

    CSS代码:

      .wrapper{display:table;height:800px;width:300px;}
    .content{display:table-cell;vertical-align:middle;text-align:center;}
    //文本内容不足一行时居中,内容多行时左对齐
    .content span{display:inline-block;text-align:left;}

    虽然对于现代浏览器都能够生效,但是在奇葩的IE6-7下就无法正常运行。在这里为了兼容这些特殊的情况,必然要使用另外一种相对定位和绝对定位的方式,在使用IE的特有的条件语法的同时,也可以使用ie hack来写。

    兼容IE的CSS代码:

      .wrapper{display:table;height:800px;width:300px;position:relative;}
    .content{display:table-cell;vertical-align:middle;text-align:center;*position:absolute;*top:50%;*left:50%;}
    //文本内容不足一行时居中,内容多行时左对齐
    .content span{display:inline-block;text-align:left;}
    .content *{position:relative;*top:-50%;*left:-50%;}

    优点:

    wrapper的高度没有限制,可以自适应,根据内部元素动态的改变高度

    缺点:

    结构复杂,需要增加额外的标签,对于IE6-7浏览器需要额外的兼容

    以上结构能满足所有的多行内容的垂直水平居中,对于单行垂直水平居中的情况,实现相对更加简单,即通过line-height来实现。


  • float属性

    在child元素之前插入一个div元素,使其left浮动,高度为parent元素的50%,同时设置margin-bottom为的child元素高度的一半,然后再child元素中清除浮动。这样,child元素就相对parent元素垂直居中。

    No Code No Truth

    Html代码:

      <div class="wrapper">
    <div class="floater"></div>
    <div class="content">Contents</div>
    </div>

    CSS代码:

      .floater{float:left;height:50%;margin-bottom:-100px;}
    .content{clear:both;height:240px;position:relative;}

    优点:

    不存在兼容问题,所有浏览器都适应;内部元素的高度需要固定

    缺点:

    需要插入额外的空元素


CSS布局技巧 -- 各种居中的更多相关文章

  1. div+css 布局技巧总计

    一.css 样式 1.float 首先需要了解块级元素(block element).每个块级元素都默认占用一行,在同一行只能添加一个块元素(float 除外).块级元素一般可以嵌套块级元素或者行内元 ...

  2. CSS布局技巧之——各种居中

    居中是我们使用css来布局时常遇到的情况.使用css来进行居中时,有时一个属性就能搞定,有时则需要一定的技巧才能兼容到所有浏览器,本文就居中的一些常用方法做个简单的介绍. 注:本文所讲方法除了特别说明 ...

  3. CSS布局之--各种居中

    居中是我们使用css来布局时常遇到的情况.使用css来进行居中时,有时一个属性就能搞定,有时则需要一定的技巧才能兼容到所有浏览器,本文就居中的一些常用方法做个简单的介绍. 注:本文所讲方法除了特别说明 ...

  4. css布局技巧

    CSS用户界面样式 鼠标样式currsor li{ cursor:pointer: } 设置或检索在对象上移动鼠标指针采用何种系统预定义的光标形状 属性值 描述 default 默认 pointer ...

  5. HTML+CSS布局技巧及兼容问题【阅读季】

    在IE6和IE7中,行高值必须大于字体的2px以上才能保证字体的完整显示或当作为链接时能显示下划线. IE6 下去掉 input等元素 的边框 border: 0 none; 所有浏览器都可以了 边框 ...

  6. Html和CSS布局技巧

    单列布局水平居中 水平居中的页面布局中最为常见的一种布局形式,多出现于标题,以及内容区域的组织形式,下面介绍四种实现水平居中的方法(注:下面各个实例中实现的是child元素的对齐操作,child元素的 ...

  7. 史上最全Html与CSS布局技巧

    单列布局水平居中水平居中的页面布局中最为常见的一种布局形式,多出现于标题,以及内容区域的组织形式,下面介绍四种实现水平居中的方法(注:下面各个实例中实现的是child元素的对齐操作,child元素的父 ...

  8. Html利用CSS布局技巧

    单列布局水平居中 水平居中的页面布局中最为常见的一种布局形式,多出现于标题,以及内容区域的组织形式,下面介绍四种实现水平居中的方法(注:下面各个实例中实现的是child元素的对齐操作,child元素的 ...

  9. 史上最全Html和CSS布局技巧

      单列布局水平居中 水平居中的页面布局中最为常见的一种布局形式,多出现于标题,以及内容区域的组织形式,下面介绍四种实现水平居中的方法(注:下面各个实例中实现的是child元素的对齐操作,child元 ...

随机推荐

  1. MySql开始日期、结束日期查询

    str_to_date('2016-08-24', '%Y-%m-%d %H') validStartTime str_to_date('2016-09-16', '%Y-%m-%d %H') val ...

  2. SQL Server 常用函数介绍

    --聚合函数 count( * | 字段名) --统计数据表中的数据总数sum( 表达式 | 字段名) --计算表达式或字段名中数据的和,表达式或字段名的数据类型要求是数值型avg( 表达式 | 字段 ...

  3. 基于AQS的锁

    锁分为独占锁和共享锁,它们的主要实现都是依靠AbstractQueuedSynchronizer,这个类只提供一系列公共的方法,让子类来调用.基于我了解不深,从这个类的属性,方法,和独占锁的获取方式去 ...

  4. php sleep()的实时输出打印,清除ob缓冲区

    @ini_set('implicit_flush',1);ob_implicit_flush(1);@ob_end_clean(); echo 1;//echo str_repeat('', 1024 ...

  5. seajs的CMD模式的优势以及使用

    之前有一篇博客非常详细的介绍了sea.js的加载流程,以及源代码实现,链接地址:http://www.cnblogs.com/chaojidan/p/4123980.html 这篇博客我主要讲下sea ...

  6. [AS3]as3画笔实例实现橡皮擦功能源代码

    [AS3]as3画笔实例实现橡皮擦功能源代码 //主容器 var main:Sprite = new Sprite(); main.mouseEnabled = false; addChild(mai ...

  7. ORM即 对象-关系映射(转自:微冷的雨)

    ORM即 对象-关系映射: 将数据库中的数据关系表,映射为实体对象. 灵动思绪EF(Entity FrameWork) 作者: 微冷的雨  来源: 博客园  发布时间: 2013-01-22 16:2 ...

  8. Java Web 环境搭建步骤(超详细,包括前期安装步骤)

    Java Web 环境搭建步骤 安装对应版本的JDK 配置环境变量 本人安装的路径是C盘,在path中加入C:\Program Files\Java\jdk1.8.0_65\bin 测试配置成功,cm ...

  9. 5.Struts2中的拦截器

    拦截器是Struts2中的核心,其自带很多很多的拦截器,这里主要介绍一下自定义拦截器,恩多一半情况下呢?我们不需要使用到自定义的拦截器,Struts2本身已经提 供了很多的拦截器供我们使用,对于自定义 ...

  10. sftp上传 - 待完

    1.搭建本地sftp 1.1.下载msftpsrvr.exe软件 下载地址:http://www.download3k.com/Install-Core-FTP-Mini-SFTP-Server.ht ...