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;
        width: 100px;
        height: 100px;
        background:red;
    }
    </style>
    <body>
       <div class="box1">
           <div class="item1"></div>
       </div>
    </body>

    2.使用position+margin-left实现水平居中

    定位后,设置left先整体偏移父容器的一半,再使用负margin-left自己一半的宽度,从而子元素中心对准父元素中心。

    <style>
    .box2{
        position:relative;
        height:300px;
        background:blue;
    }
    .item2{
        /*关键 相对定位*/
        position: relative;
        /*关键*/
        left: 50%;
        /*关键*/
        margin-left:-50px;
        width:100px;
        height:100px;
        background:red;
    }
    </style>
    <body>
      <div class="box2">
           <div class="item2"></div>
       </div>
    </body>

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

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

    <style>
    .box3{
        /* 关键,对于行内元素水平居中 */
        text-align: center;
    }
    
    .item3{
        /* 关键,将块元素设置成行内块接元素 */
        display:inline-block;
        width: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>

    二、垂直居中

    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>

    3.块元素垂直居中

    1.确定宽高的情况

    使用position 和 margin-top配合

    <style>
        *{
            margin:0;
            padding:0;
        }
        /* 父元素 */
        .parent{
            position:relative;
            height:400px;
            border: 1px solid blue;
        }
        /* 子元素 */
        .child{
            /* position  */
            position: relative;
            /* 距离顶部50% */
            top:50%;
            /* 再用margin-top     向上调子容器一半高度,则刚好子元素中心对准父元素中心 */
            margin-top:-100px;
            height:200px;
            border:1px solid red;
        }
    </style>
    <body>
        <div class="parent">
            parent
            <div class="child">
                child
            </div>
        </div>
    </body>

    2.对于未知宽高的

    使用transform 的 translateY(-50%) 向上平移自身一半

    <style>
        .parent2{
            position: relative;
            background:blue;
            height:400px;
        }
        .child2{
            position: relative;
            top:50%;
            transform: translateY(-50%);
            background: red;
        }
    </style>
    <div class="parent2">
            parent2
        <div class="child2">child2</div>
    </div>

    3.使用flex布局

    <style>
      .parent3{
            /*关键flex*/
            display:flex;
            display: -webkit-flex;
            /* 对齐排列居中 */
            justify-content:center;
            /* 排列方向垂直 */
            flex-direction:column;
            height:400px;
            background:yellow;
        }
        .child3{
            height:100px;
           }
    </style>
    <body>
     <!-- flexbox -->
        <div class="parent3">
            <div class="child3"></div>
        </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;
            width:100px;
            height:100px;
            background: red;
        }
    </style>
    <body>
        <div class="box1">
            <div class="item1"></div>
        </div>
    </body>

    2.使用flex布局

    同时设置两条居中属性 justify-content 和 align-items

    <style>
       .box2{
            display: flex;
            /*关键*/
            justify-content: center;
            /*关键*/
            align-items: center;
            height:300px;
            background:yellow;
        }
        .item2{
            width: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/Ry-yuan/p/8474206.html

  • 相关阅读:
    oracle goldengate技术架构-简单试验(全)
    oracle goldengate安装
    Oracle HA 之 OGG部署流水
    Oracle HA 之 基于活动数据库复制配置oracle 11.2 dataguard
    Oracle HA 之 oracle 11.2 rac库配置active dataguard
    sosi-statistics
    xplan-打印执行顺序
    统计信息脚本
    Oracle管理监控之段空间利用监控-oracle性能优化
    监控7天内过期用户脚本
  • 原文地址:https://www.cnblogs.com/ning123/p/11052577.html
Copyright © 2011-2022 走看看