css实现垂直居中的方法比较多,但是每种方法的缺陷也很明显,我尝试对其中一种方法进行了改良

先看原方法:

<div class="parent">

   <div class="child"></div>

</div>

.parent{

  width:500px;

  height:500px;

  position:relative;

}

.child{

  width:100px;

  height:100px;

  position:absolute;

  top:50%;

  margin-top:-50px;

}

这种方法大家应该都了解,它有一个致命缺点:必须知道child的高度。

但是仔细想下,定位后需要调整的距离正好是child高度的一半,所以有没有办法用50%来代替距离呢?这样就可以无视高度

新方法登场:

<div class="parent">

   <div class="wrapper">

      <div class="child"></div>

   </div>

</div>

.parent{

  width:500px;

  height:500px;

  position:relative;

}

.wrapper{

  position:absolute;

  top:50%;

}

.child{

  width:100px;

  height:100px;

  margin-top:-50%;

}

新方法在child外部加了一层wrapper,先对wrapper进行绝对定位,再通过child来调整距离。由于wrapper的高度是被child撑开的,所以child设置margin-top:-50%就相当于上移了自己高度的一半

此时无需知道child的高度便能实现垂直居中

测试了下,在ie5上也可实现,兼容各版本ie

(第一次写博客,有错误之处欢迎大家指出)

不定高度实现垂直居中(兼容低版本ie)的更多相关文章

  1. 兼容低版本IE浏览器的一些心得体会(持续更新)

    前言: 近期工作中,突然被要求改别人的代码,其中有一项就是兼容IE低版本浏览器,所以优雅降级吧. 我相信兼容低版本IE是许多前端开发的噩梦,尤其是改别人写的代码,更是痛不欲生. 本文将介绍一些本人兼容 ...

  2. android 在使用ViewAnimationUtils.createCircularReveal()无法兼容低版本的情况下,另行实现圆形scale动画

    ViewAnimationUtils.createCircularReveal()的简介: ViewAnimationUtils.createCircularReveal()是安卓5.0才引入的,快速 ...

  3. [转]AppCompat 22.1,Goole暴走,MD全面兼容低版本

    AppCompat 22.1,Goole暴走,MD全面兼容低版本 分类: Android2015-04-24 09:48 1354人阅读 评论(0) 收藏 举报 android   目录(?)[+] ...

  4. 模拟实现兼容低版本IE浏览器的原生bind()函数功能

    模拟实现兼容低版本IE浏览器的原生bind()函数功能: 代码如下: if(!Function.prototype.bind){   Function.prototype.bind=function( ...

  5. fragment基础 fragment生命周期 兼容低版本

    fragment入门 ① 创建一个类继承Fragment 重写oncreateView方法 public class FirstFragment extends Fragment { @Overrid ...

  6. Vue2+Webpack+ES6 兼容低版本浏览器(IE9)解决方案

    Vue2+Webpack+ES6 兼容低版本浏览器(IE9)解决方案 解决方式:安装 "babel-polyfill" 即可. 命令:npm install --save-dev ...

  7. Fundebug前端JavaScript插件更新至1.8.0,兼容低版本的Android浏览器

    摘要: 兼容低版本Android浏览器,请大家及时更新. Fundebug前端BUG监控服务 Fundebug是专业的程序BUG监控平台,我们JavaScript插件可以提供全方位的BUG监控,可以帮 ...

  8. 兼容低版本JS的Array.map方法

    前几天去别的公司面试遇到个这样的问题,兼容IE7下的Array.map方法,一脸蒙蔽.后面回来查了下资料发现.Array.map方法是ECMA-262 标准中新添加的方法,在低版本的JS中是木有的. ...

  9. 兼容低版本 ie 的思路

    兼容处理 ie 低版本,推荐三条路径: 一.css hack,适用于代码初建阶段,也就是说在开发功能之前要思考的问题点,这里总结几个常见的: 1.- 区分 ie6 与 ie7以上 ( -text-in ...

随机推荐

  1. yum 安装 5.6

    http://www.cnblogs.com/XBlack/p/5178758.html

  2. Codeforces 339E

    #include <cstdio> #include <algorithm> #include <cmath> #include <cstring> # ...

  3. redis.conf配置详解

    http://www.2cto.com/database/201307/225113.html

  4. C++STL_类模板举例

    #include<stdio.h> #include<typeinfo.h> template <class T1,class T2> class A{ T1 i; ...

  5. Python字符串与数字拼接

    Python不像JS或者PHP这种弱类型语言里在字符串连接时会自动转换类型,而是直接报错.要解决这个方法只有提前把int转成string,然后再拼接字符串即可. 如代码: 1 2 3 4 5 # co ...

  6. Spring、Bean 的作用域

    Singleton作用域(默认) 当一个bean的作用域为singleton,那么Spring Ioc容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则 ...

  7. Java复习第一天---Javascript的基本知识点

    1.HelloWord: 2.基础语法: 3.嵌入HTML 借助window.onload事件在整个窗体载入完毕之后运行程序代码 4.事件驱动: 5.DOM操作 5.1 查找元素节点 5.1.1 依据 ...

  8. Spring MVC JSON 实现JsonSerializer Date类型转换

    转载至:http://blog.csdn.net/lantianzhange/article/details/40920933 在Spring MVC中存在两大类的类型转换,一类是Json,一个是Sp ...

  9. iOS退出键盘的两种方式

    1,可以让叫出键盘的那个控件,退出第一响应者; 例如:textField叫出的键盘,那么就可以调用textField.resignFirstResponder,达到谁叫出的键盘谁退回去 2,可以让叫出 ...

  10. EC读书笔记系列之11:条款20、21

    条款20 宁以pass-by-reference-to-const替换pass-by-value 记住: ★尽量以pass-by-reference-to-const替换pass-by-value.前 ...