• 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

    故乡明
  • 相关阅读:
    第二次
    第一次
    win下less自动编译脚本
    厦门攻略游记
    npm常用命令
    青岛旅行规划及玩后感
    kissynode run on windows解决方案,contextify nodejs windows solution
    win nodejs下 findit只返回第一个文件问题
    jetty自动添加path的问题
    微博输入框统计
  • 原文地址:https://www.cnblogs.com/luweiweicode/p/14743552.html
Copyright © 2020-2023  润新知