美文网首页
CSS元素水平居中和垂直居中的方法大全

CSS元素水平居中和垂直居中的方法大全

作者: 乡水情缘 | 来源:发表于2017-03-22 21:57 被阅读75次

    水平居方法:
    1.最熟悉的是给元素定义一个宽度,然后使用margin:

    body{
    width:960px;
    margin:0 auto;
    }
    

    这个是当我们的定义元素的宽度时显现的,如果我们不能定义宽度时,该怎么办呢?

    2.也可以采用定位的方法来实现:

    body{
    position:absolute;
    left:50%;
    }
    
    1. 既然定位可以,那浮动也是可以的:
    body{
    float:left;
    right:50%;
    }
    
    1. 对于几个元素同时居中在一条线上:
    body{
    vertical-align:middle; 
    }
    
    1. 利用table:
    ul{
    display:table;
    }
    ul li{
    display:table-cell;
    }
    
    1. 还可以使用inline-block来实现,但要使用这个就得在其父元素上设置text-align.如下:
    body{
    text-align:center;
    }
    .content{
    display:inline-block;
    }
    

    垂直居中的四种方法:

    1. 只能是单行文本居中(可适用于所有浏览器):
    .content{
    height:100px;
    line-height:100px; 
    }
    
    1. 跟水平居中一样,垂直也可以用定位的方法:
    .content{
    position:absolute;
    top:0;
    bottom:0;
    left:0;
    right:0;
    margin:auto;
    }
    

    或者

    .content{
    position:absolute;
    top:50%;
    }
    

    定位方法的缺点是当没有足够的空间时,元素会消失。

    1. 对此,浮动也是可以的:
    .content{
    float:left;
    height:50%; 
    margin-bottom:-120px;
    }
    .footer{
    clear:both;
    height:240px;
    position:relative;
    }
    

    对于浮动,我们需要在之后清除,并显示在中间。

    1. 也可以使用vertical-align属性:
    .content{
    display:table-cell;
    vertical-align:middle;
    }
    

    这种方法可以随意改变元素高度,但在IE8中无效。

    div模块在屏幕中居中的例子:

    position: absolute; top: 50%; left: 50%; //上下移动屏幕的50%
    margin: auto;
    -webkit-transform: translate(-50%,-50%); //减去自身的50%(多移动的)
    -ms-transform: translate(-50%,-50%);
    transform: translate(-50%,-50%);
    

    相关文章

      网友评论

          本文标题:CSS元素水平居中和垂直居中的方法大全

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