居中

作者: LMozart | 来源:发表于2016-08-10 00:31 被阅读39次

    http://codepen.io/chriscoyier/pen/HulzB

    参考资料:

    CSS 居中(Center)方法大合集 https://segmentfault.com/a/1190000005353303

    Flex 布局教程:语法篇http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html

    文章中涉及到的其他知识点:

    css

    伪类 ::before

    弹性布局 flex

    文本属性 white-space:nowrap

    变换属性 transform:translate(-50%,-50%)

    js

    点击元素以外隐藏元素本身 closet

    一、普通文档流居中

    1.水平居中

    a.行内元素居中

    text-align:center

    b.块级元素

    单个

    width:固定宽度;margin:auto

    浮动元素居中

    多个

    并排显示,高度无要求 display:inline-block

    并排显示,要求高度相同 display:flex 弹性布局

    显示成一列 margin:auto

    2.垂直居中

    a.行内元素

    单行内容

    (1).link{

    padding-top:30px;

    padding-bottom:30px;

    }

    (2).center-text-trick{

    height:100px;

    line-height:100px;

    white-space:nowrap;//不换行

    }

    多行内容

    (1)verticle-align:middle

    (2).flex-center-vertically{

    display:flex;

    justify-content:center;

    flex-direction:column;

    height:400px;   

    } //父元素不指定高度也能垂直居中

    (3).ghost-center{

    position:relative;

    }

    .ghost-center::before{

    content:" ";

    display:inline-block;

    height:100%;

    width:1%;

    vertical-align:middle;

    }

    .ghost-center p{

    display:inline-block;

    vertical-align:middle;

    }

    b.块级元素

    元素高度已知

    .parent{

    position:relative;

    }

    .child{

    position:absolute;

    top:50%;

    height:100px;

    margin-top:-50px;/* account for padding and border if not using box-sizing: border-box; */

    }

    元素高度未知

    (1). .parent{

    position:relative;//position:fixed也行

    }

    .child{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    }

    (2).parent{

    display:flex;

    flex-direction:column;

    justify-content:center;

    }

    3.水平&垂直均居中

    元素的宽度或高度未知

    (1).parent{

    position:relative;

    }

    .child{

    position:absolute;

    top:50%;

    left:50%;

    transform:translate(-50%, -50%);

    }

    (2).parent{

    display:flex;

    justify-content:center;

    align-items:center;

    }

    二、弹出层居中(实践中的重点)

    项目中遇到的主要问题:弹出框宽度和高度未知的居中问题

    (1)

    外层modal框 position:fixed;width:100%;height:100%;top:0;left:0;z-index

    内层modal-content块 position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)

    (2)爱游邦

    网站的遮罩.msgbox-bg{  //为了点击弹层元素以外隐藏弹层本身

    display:none;

    position:fixed;

    z-index:999;

    width:100%;

    height:100%;

    background-color:rgba(0,0,0,0.6);

    }

    弹层外层.msgbox-user{

    display:none;

    position:fixed;

    right:0;

    left:0;

    top:0;

    bottom:0

    margin:auto;

    width:466px;

    z-index:9999;

    }

    弹层内容

    #personal-tailor{

    position:relative;

    z-index:99999;

    width:454px;

    height:558px;

    overflow:auto;

    margin:auto;

    }

    (3)沃亚旅行

    (1)登录类弹层  必须给定高度才能垂直居中,弹层只有一层比爱游邦少一个外层包装

    (2)网站默认提示信息

    (3)信息提示类弹层 

    (4)我的消息侧栏层

    目前是用iframe实现的

    理想中想达到的效果,参考明道软件

    相关文章

      网友评论

          本文标题:居中

          本文链接:https://www.haomeiwen.com/subject/gygdsttx.html