CSS 居中方式总结

一、水平居中方法

1.行内元素、字体的水平居中

1.对于行内元素(display值为inline或inline-block都可以)或者字体:父元素添加css规则:text-align:center;

<style>
    p {
        /*关键*/
        text-align: center;
    }

    ul {
        /*关键*/
        text-align: center;
    }

    /*这里li设置inline-block*/
    .item {
        /*关键*/
        display: inline-block;
    }

</style>
<!--字体-->
<p>I am ry</p>

<!--行内元素-->
<ul>
    <li class="item">1</li>
    <li class="item">2</li>
    <li class="item">3</li>
    <li class="item">4</li>
</ul>

 

 2.块元素的水平居中

1.使用margin实现水平居中

将margin-left 和 margin-right 设置为auto,块元素将会自动匹配适应,实现水平居中

<style>
*{
    margin:0;
    padding:0;
}
.box1{
    height:300px;
    background:blue;
}
.item1{
    /*关键,margin-left,margin-right设置为auto*/
    margin: 0 auto;
     100px;
    height: 100px;
    background:red;
}
</style>
<body>
   <div class="box1">
       <div class="item1"></div>
   </div>
</body>

 3.如果是多个块元素在同一水平线居中排列,则将其display设置成inline-block,还有一种是使用flexbox的布局方式来实现。

块元素设置了inline-block后,拥有行内元素并排特点,只要父元素设置text-align即可使其水平居中。

<style>
.box3{
    /* 关键,对于行内元素水平居中 */
    text-align: center;
}

.item3{
    /* 关键,将块元素设置成行内块接元素 */
    display:inline-block;
    100px;
    height: 100px;
    background:red;
}
</style>
<body>
<div class="box3">
       <div class="item3"></div>
       <div class="item3"></div>
       <div class="item3"></div>
       <div class="item3"></div>
   </div>
</body>

 注:如若去除中间的间隔空隙  需设置父类 font-size: 0;

 二、垂直居中

1.行内元素或者文字(单行情况)

1.可以直接使用line-height属性来设置: 将line-height设置成和height一样即可

<style>
    .text{
        height:100px;
        line-height:100px;
        border:1px solid red;
    }
</style>

<body>
    <div class="text">
        we dont talk anymore
    </div>
</body>
2.使用padding(top,bottom)通过增加内边距来实现垂直的居中

<style>
.ctext{
        /*关键*/
        padding-top:30px;
        padding-bottom:30px;
        border:1px solid red;
    }
</style>
<body>
 <div class="ctext">确认过眼神,我遇上对的人</div>
</body>

 

2.行内元素或者文字(多行情况)

1.照样可以使用padding(top 和 bottom)

2.对父元素设置display:table-cell 和 vertical-align:middle

<style>
    .box{
        /* 将其变成单元格的形式 */
        display: table-cell;
        /* 100px; */
        height:300px;
        border:1px solid red;
        /* 设置内联元素的垂直对齐的方式 */
        vertical-align: middle;
    }

</style>
<body>
    <div class="box">
        <span>how to love</span><br>
        <span>I knoe I need somebody</span><br>
        <span>I know I need somebody</span><br>
        <span>pary for me</span>
    </div>
</body>

 

三、水平且垂直居中

1.position 和 margin 配合

<style>
    *{
        margin: 0 ;
        padding: 0 ;
    }
    .box1{
        position:relative;
        height:400px;
        background:blue;
    }
    .item1{
        /*关键*/
        position: absolute;
        top: 50%;
        left: 50%;
        margin-top:-50px;
        margin-left:-50px;
        100px;
        height:100px;
        background: red;
    }
</style>
<body>
    <div class="box1">
        <div class="item1"></div>
    </div>
</body>

2.使用flex布局

<style>
   .box2{
        display: flex;
        /*关键*/
        justify-content: center;
        /*关键*/
        align-items: center;
        height:300px;
        background:yellow;
    }
    .item2{
        50px;
        height:50px;
        background:red;
    }
</style>
<body>
    <div class="box1">
        <div class="item1"></div>
    </div>

    <div class="box2">
        <div class="item2"></div>
    </div>
</body>

 https://www.cnblogs.com/ning123/p/11052577.html

故乡明
原文地址:https://www.cnblogs.com/luweiweicode/p/14743552.html