zoukankan      html  css  js  c++  java
  • 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

    故乡明
  • 相关阅读:
    记录Windows下文件操作记录
    线程太多导致socket连接池爆满,进程启动不了
    【转载】windbg 常用命令详解
    比较两个CSV的方法的探索
    【转载】java.util.ServiceConfigurationError: com.sun.tools.attach.spi.AttachProvider
    [转载]sql server死锁
    moco搭建json api网站用于接口测试
    Httprequest 获取url 常用方法
    test文件伪装
    微信小程序开发历程
  • 原文地址:https://www.cnblogs.com/luweiweicode/p/14743552.html
Copyright © 2011-2022 走看看