zoukankan      html  css  js  c++  java
  • CSS常用的元素居中方法

    参考:CSS: 常用的元素居中方法

             CSS居中布局总结

    1.水平居中

    (1)文本水平居中

    text-align: center;

    (2)块级元素水平居中

    ①设置margin

    margin: auto;

    ②display:inline-block+text-align:center

            .parent {
                 400px;
                height: 400px;
                background-color: aquamarine;
                text-align: center;
            }
    
            .child {
                 100px;
                height: 100px;
                background-color: #43ff26;
                display: inline-block;
            }

    这样可以使一块级元素拥有一些inline元素的特性。

    ③absolute+transform

    .parent {position:relative;}
    .child {position:absolute;left:50%;transform:translateX(-50%);}

    ④ flex+justify-content

    .parent {
                 400px;
                height: 400px;
                background-color: aquamarine;
                display: flex;
                justify-content: center;
            }

    2.垂直居中

    (1)文本垂直居中

    ①设置line-height和父元素高度一致,只适合单行文本的情况下。

    (2)块级元素垂直居中

    ①table-cell+vertical-align

      .parent {display:table-cell;vertical-align:middle;}

    优点:只需设置父节点,兼容性好

    ②absolute+transform

    .parent {position:relative;}             .child{position:absolute;top:50%;transform:translateY(-50%);}

    ③ flex+align-items

    .parent {display:flex;align-items:center;}

    3.水平垂直居中

    (1)文本元素

    text-align:center+line-height

    (2)块级元素

    ①inline-block+text-align+table-cell+vertical-align

     .parent {text-align:center;display:table-cell;vertical-align:middle;}
    
     .child {display:inline-block;}

    ②absolute+transform

    .parent {position:relative;}
    .child{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);}

    ③flex+justify-content+align-items

     .parent {display:flex;justify-content:center;align-items:center;}

    ④负margin(需精确计算长宽)

    <div class="absolute_p1">
      <div class="absolute_c1"></div>
    </div>
    
    .absolute_p1 {
      position: relative;
    
       200px; height: 200px;
    }
    .absolute_p1 .absolute_c1 {
      position: absolute; /* fixed 同理 */
      left: 50%;          top: 50%;
    
       100px;       height: 100px;
      margin-left: -50px; margin-top: -50px;  /* 需根据宽高计算偏移量 */
    }
    • 原理: 通过定位使元素左上角居中,再通过偏移值margin调整使元素中心居中
    • 缺点:高度宽度需事先知道,得通过其来计算负margin(好烦)

    ⑤定位实现居中(不需计算偏移值)

    <div class="absolute_p2">
      <div class="absolute_c2"></div>
    </div>
    
    .absolute_p2 {
      position: relative;
    
       200px; height: 200px;
    }
    .absolute_p2 .absolute_c2 {
      position: absolute; /* fixed 同理 */
      left: 0; top: 0; bottom: 0; right: 0; /* 定位为 0 */
    
       100px; height: 100px;
      margin: auto; /* 不用计算偏移量 */
    }

    原理: 原理我也不知道啊!估计定位都给0了,元素自己也不知道该去哪儿,只好待在原地不知所措...

  • 相关阅读:
    python : matplotlib does not work in Eclipse
    在线代码生成器的设计和使用
    Hama——BSP、Graph教程
    oozie:hadoop中的工作流引擎
    oracle命令建库全过程
    IntelliJ IDEA 自动生成方法注释(含参数及返回值)转+亲测IDEA2018.3
    转:Can't connect to MySQL server on 'XXXX' (10055) 解决方案
    资源的释放
    java中的break、continue、return的区别
    解析xml文件的方式
  • 原文地址:https://www.cnblogs.com/txwslyf/p/6894774.html
Copyright © 2011-2022 走看看