zoukankan      html  css  js  c++  java
  • 网易前端工程师课程中,布局解决方案

    前提是要求用到的所有元素宽度高度都不确定的情况下:

    比如父div与子div大小都不确定的情况下,要使子元素在父元素中确保居中。

    <div class="parent">

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

    </div>

    水平居中解决方案:

    1、inline-block+text-align      .child{display:inline-block;}  .parent{text-align:center;}

    优点:兼容性特别好,只有兼容性IE6,7不支持inline-block,但是通过.child{display:inline;zoom:1;}来实现兼容。

    缺点:会影响到parent里面其他元素及child内部元素,需要通过内部元素样式覆盖,将text-align样式覆盖过来。

    2、table+margin                    .child{display:table;margin:0 auto;}

    优点:只设置child的样式即可。 支持IE8以上的浏览器,IE6,7下考虑将DOM结构换成table的结构。

    3、absolute+transform           .child{display:absolute;left:50%;transform:translateX(-50%);}   .parent{display:relative};

    优点:绝对定位脱离文档流,不会影响其他元素定位。

    缺点:兼容性不支持IE6、7、8,高版本中要加私有前缀。

    4、flex+justify-content           

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

          4.2 .child{margin:0 auto;}.parent{display:flex}

          4.1优点:只设置父元素的样式即可。

           两个缺点:flex属性IE6、7、8不支持。

    垂直居中解决方案:

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

    优点:只设置父元素,兼容性不错兼容至IE8,IE6、7换结构。

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

    优点:脱离文档流,不会影响其他元素。

    缺点:兼容性问题。

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

    优点:只设置父元素即可。

    缺点:兼容性问题。

    水平和垂直都居中解决方案:

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

    2、absolute+transform:                   .parent{position:relative;}    .child{position:absolute;left:50%;top50%;transform:translate(-50%,-50%);}

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

    优点:只设置父元素即可。

  • 相关阅读:
    面试官:软件测试没搞懂这些,哪里来的自信投简历? 刁钻问得高频的面试题(含答案)
    软件测试行业的职业素养?——《高级软件测试-高级软件测试分析师》第一章
    什么?你正在学web自动化测试?那这些Selenium的基本操作你了解过吗?
    没想到 Google 排名第一的编程语言,为什么会这么火?
    为什么大家都在用Fiddler?
    看了很多文章,就这篇说明白了什么是接口测试(含视频教程)
    Win 10 安裝 Docker 及相關設置
    Dynamics CRM
    Dynamics CRM
    Dynamics CRM
  • 原文地址:https://www.cnblogs.com/liujiekun/p/9511707.html
Copyright © 2011-2022 走看看