zoukankan      html  css  js  c++  java
  • 绝对定位元素实现水平垂直居中

    第一种:

    .element {
         600px; height: 400px;
        position: absolute; left: 50%; top: 50%;
        margin-top: -200px;    /* 高度的一半 */
        margin-left: -300px;    /* 宽度的一半 */
    }

    但,这种方法有一个很明显的不足,就是需要提前知道元素的尺寸。否则margin负值的调整无法精确。此时,往往要借助JS获得。

    第二种:

    CSS3的兴起,使得有了更好的解决方法,就是使用transform代替margintransformtranslate偏移的百分比值是相对于自身大小的,于是,我们可以:

    .element {
         600px; height: 400px;
        position: absolute; left: 50%; top: 50%;
        transform: translate(-50%, -50%);    /* 50%为自身尺寸的一半 */
    }

    于是乎,无论绝对定位元素的尺寸是多少,其都是水平垂直居中显示的。

    然,问题很明显,兼容性不好。IE10+以及其他现代浏览器才支持, IE9(-ms-), IE10+以及其他现代浏览器才支持。中国盛行的IE8浏览器被忽略是有些不适宜的(手机web开发可忽略)。

    实际上,绝对定位元素的居中实现还有另外一种方法,可以说是权衡了上面的尺寸自适应以及兼容性的一个方案,其实现的核心是margin:auto.

    在微信开发中我们在处理transform的时候最好再添加一个-webkit-transform:translate(-50%, -50%); 因为X5内核的webkit版本比较低,所以需要兼容处理。

    第三种:

    margin:auto实现绝对定位元素的居中

    代码如下:

    .element {
         600px; height: 400px;
        position: absolute; left: 0; top: 0; right: 0; bottom: 0;
        margin: auto;    /* 有了这个就自动居中了 */
    }

    代码两个关键点:

    1. 上下左右均0位置定位;
    2. margin: auto

    于是,就居中了。

    教程参考地址:http://www.cnblogs.com/c-and-unity/articles/4837470.html

  • 相关阅读:
    【郑轻邀请赛 G】密室逃脱
    【郑轻邀请赛 C】DOBRI
    【郑轻邀请赛 F】 Tmk吃汤饭
    【郑轻邀请赛 I】这里是天堂!
    【郑轻邀请赛 B】base64解密
    【郑轻邀请赛 A】tmk射气球
    【郑轻邀请赛 H】 维克兹的进制转换
    解决adb command not found以及sdk环境配置
    adb shell 命令详解,android, adb logcat
    Unexpected exception 'Cannot run program ... error=2, No such file or directory' ... adb'
  • 原文地址:https://www.cnblogs.com/Mrrabbit/p/7008830.html
Copyright © 2011-2022 走看看