<i id="yupd0"></i>
  • <i id="yupd0"></i>
  • <thead id="yupd0"></thead>
    <blockquote id="yupd0"></blockquote>
    <i id="yupd0"></i>
  • 碼迷,www.greeshyz.com
    首頁 > Web開發 > 詳細

    css中元素垂直居中的n種方法

    時間:2020-06-05 01:06:47      閱讀:50      評論:0      收藏:0      [點我收藏+]

    標簽:href   紅色   對齊   行內元素   空間   說明   大小   enter   let   

    元素垂直居中的n種方法

    本文章收集了多種實現居中布局的方法,并且按照實現的時間線,從css2到css3的各種解決方案,從代碼量有少到多的排序來一一說明每種布局方法的實現方式,通過閱讀此文章能夠讓你解決平時的開發中遇到的各種布局問題。

    使用line-height實現單行文本垂直居中

    line-height:用于設置多行元素的空間量,如多行文本的間距。對于塊級元素,它指定元素行盒(line boxes)的最小高度。對于非替代的 inline 元素,它用于計算行盒(line box)的高度。

    .box-1{
        height: 50px;
        line-height: 50px;
    }
    
    <div class="box box-1">
        這是要垂直居中的內容。
    </div>
    

    查看案例: https://codepen.io/qwguo88/full/dyYvBQv

    使用inline-block元素和vertical-align特性實現垂直居中

    此方法不限制元素的寬高,兼容性好

    1. vertical-align:用來指定行內元素(inline)或表格單元格(table-cell)元素的垂直對齊方式。
    <div class="box">
        <div class="content">
            這是要垂直居中的內容。
        </div>
    </div>
    
    .box{
      text-align: center;
      letter-spacing: -.3em;
    }
    .box::before{
      content: ‘‘;
      height: 100%;
      width: 1px;
      margin-right: -1px;
      display:inline-block;
      vertical-align: middle;
    }
    .content{
      display:inline-block;
      vertical-align: middle;
      letter-spacing: normal;
    }
    

    查看案例: https://codepen.io/qwguo88/full/KKdmvdj

    上面的案例通過利用display:inline-block的高度100%于父級高度,再利用vertical-aling:middle垂直居中屬性,讓行內塊級元素劇中與父級。在元素設置成行內塊級元素的時候代碼中如果元素后邊有空格,可以通過設置父級元素letter-spacing:-.3em,然后在通過居中元素還原文字間隔,或者通過設置父級的font-size:0;也可以取消空格的間距。其中紅色豎線是通過父元素的偽類設置的。

    使用表格單元格和vertical-align特性實現垂直居中

    <div class="box">
      <div class="content">
        這是要垂直居中的內容。
      </div>
    </div>
    
    .box{
      display: table-cell;
      vertical-align: middle;
      text-align:center;
    }
    .content{
      display:inline-block;
    }
    

    此方法需要設置父級的父級為diaplay:table;,并且設置父元素:display:table-cell,然后在設置vertical-align:middle,實現元素居中,但是此方法子元素需要是行內元素,和行內塊級元素;

    查看案例: https://codepen.io/qwguo88/full/qBOmPaM

    使用絕對定位absolute和margin負值

    此方法用于固定寬高的元素,或者通過js獲取不固定元素寬高

    <div class="box">
      <div class="content">
        這是要垂直居中的內容。
      </div>
    </div>
    
    .box{
      position: relative;
    }
    .content{
      position: absolute;
      width: 100px;
      height: 100px;
      left: 50%;
      top: 50%;
      margin: -50px 0 0 -50px;
    }
    

    此方法需要設置元素依照父級絕對定位,left和top都按照父元素50%定位。且需要知道要居中元素的寬高,也可以通過javascript獲取元素的寬高,并且設置margin的上和左為負值元素寬高的一半;

    使用絕對定位absolute和margin:auto

    此方法需要設置居中元素為固定寬高

    <div class="box">
      <div class="content">
        這是要垂直居中的內容。
      </div>
    </div>
    
    .box{
      position: relative;
    }
    .content{
      position: absolute;
      width: 100px;
      height: 100px;
      left: 0;
      top: 0;
      right: 0;
      bottom: 0;
      margin: auto;
    }
    

    此方法利用margin: auto;居中特性加決定定位上下左右為0來實現元素居中,此方法需要固定元素的寬高,并且決對定位于父元素。兼容ie8以上瀏覽器.

    使用絕對定位absolute和css3的transform:translate屬性

    <div class="box">
      <div class="content">
        這是要垂直居中的內容。
      </div>
    </div>
    
    .box{
      position: relative;
    }
    .content{
      position: absolute;
      left: 50%;
      top: 50%;
      transform:translate(-50%, -50%);
    }
    

    此方法利用了css3的新特性元素偏移屬性,先讓元素絕對定位于父元素的右、上的50%,然后通過transform:translate(-50%, -50%);設置元素按照自身的右上便宜50%實現居中,此方法不用的優點:不用固定元素寬高,缺點:兼容需要支持css3的瀏覽器。

    案例說明: https://codepen.io/qwguo88/full/jObmLaN

    使用flex實現居中

    通過flex彈性布局有好多種方式可以居中對齊,可以給父級單獨設置,或者父級子級結合設置實現

    html代碼結構完全一樣:

    <div class="box">
        <div class="content">
          這是要垂直居中的內容。
        </div>
    </div>
    

    方法1:

    .box{
        display: flex;
        justify-content: center;
        align-items: center;
    }
    

    最簡單的方法,只通過父級設置,把父元素設置成彈性很模型,然后設置父元素的子元素橫向縱向居中顯示。

    方法2:

    .box{
        display: flex;
        justify-content: center;
        align-content: center;
        flex-wrap: wrap;
    }
    

    也是只通過父級設置,把父元素設置成彈性很模型,然后設置父元素的子元素橫向居中顯示,然后通過彈性很模型的子元素組align-content:center對齊方式,配合flex-wrap:wrap實現。

    方法3:

    .box{
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    .box:before{
        content: ‘‘;
        flex-grow: .5;
    }
    

    這個也只只給父級設置,不同的是這個需要借助父級的偽元素;先把父元素設置成彈性很模型,然后設置縱向排列,然后設置橫軸左右居中,然后再借助父元素偽類,設置縱向占據父元素的.5大小,實現上下居中。

    方法4:

    .box{
        display: flex;
    }
    .content{
        margin: auto;
    }
    

    把父元素設置成彈性很模型,然后通過要居中的子元素設置margin:auto,元素外間距依照父級自適應外間距。

    方法5:

    .box{
        display: flex;
        justify-content: center;
    }
    .content{
        align-self: content
    }
    

    把父元素設置成彈性很模型,然后子元素設置align-self: content。

    查看案例: https://codepen.io/qwguo88/full/ZEbKgXG

    使用grid網格布局實現居中

    通過css的最新布局形式grid網格布局,也有多種方式,網格布局也可以給父級單獨設置,或者父級子級結合設置實現

    html代碼結構完全一樣:

    <div class="box">
        <div class="content">
          這是要垂直居中的內容。
        </div>
    </div>
    

    方法1:

    .box{
        display: grid;
        place-content: center;
    }
    

    方法2:

    .box{
        display: grid;
        place-items: center;
    }
    

    方法3:

    .box{
        display: grid;
        justify-content: center;
        align-content: center;
    }
    

    方法4:

    .box{
        display: grid;
        justify-content: center;
        align-items: center;
    }
    

    方法5:

    .box{
        display: grid;
    }
    .content{
        margin: auto;
    }
    

    方法6:

    .box{
        display: grid;
        justify-content: center;
    }
    .content{
        align-self: center;
    }
    

    查看案例: https://codepen.io/qwguo88/full/PoPmJbo

    使用calc()計算函數實現

    此方法需要固定高度

    <div class="box">
        <div class="content">
          這是要垂直居中的內容。
        </div>
    </div>
    
    .content{
        margin: auto;
        position: relative;
        width: 300px;
        height: 100px;
        top: calc((100% - 100px)/ 2);
    }
    

    首先設置固定寬高,利用margin:auto左右居中,然后通過relative定位top通過calc()函數計算,使用父級的100% 減去元素自身高度然后除以2,也就是總高度減去元素高度計算后的一半值,如果元素設置了邊線和內邊距需要相應的減掉。

    使用設置文字排布方向屬性writing-mode實現

    <div class="box">
        <div class="box-inner">
            <div class="content">
              這是要垂直居中的內容。
            </div>
        </div>
    </div>
    
    .box{
        writing-mode: tb-lr;
        writing-mode: vertical-lr;
        text-align: center;
    }
    .box-inner{
        width: 100%;
        display: inline-block;
        writing-mode: lr;
        writing-mode: horizontal-tb;
    }
    .content{
        display: inline-block;
        text-align: left;
    }
    

    這個方法相對來說復雜一些,需要多加一個標簽,首先給最外層改變排布方向為垂直排布,然后設置垂直居中;然后在里邊一層再把排布方向設置回來,并且設置為行內塊級元素寬度100%;最后讓居中的元素設置成行內塊級元素,文字對齊設置成左對齊實現。

    查看案例: https://codepen.io/qwguo88/full/GRpmMjV

    css中元素垂直居中的n種方法

    標簽:href   紅色   對齊   行內元素   空間   說明   大小   enter   let   

    原文地址:https://www.cnblogs.com/qwguo/p/13047176.html

    (0)
    (0)
       
    舉報
    評論 一句話評論(0
    登錄后才能評論!
    迷上了代碼!
    91色国产论坛,久草99福利资源,青青草在线华人,99热在线视频观看免费,青青草a片免费看,青青草av视频导航,香蕉网站伊人大香蕉 青青碰人青青草免费 国产自拍偷拍在线播放 青青草华人在线av 伊人影院在线大香 无码大香蕉网伊人色 久久大香蕉视频网 青草精品资源在线 伊人大香蕉在线精品 97资源总站久久爱视频 自拍中文字幕 青青草手机在线视频 青青草久久爱大香蕉 国产青青草自拍 伊人大香蕉在线精品 97资源总站久久爱视频 自拍中文字幕 av图片在线看 久草视频福利免费资源站 自拍国产视频在线 www.琪琪色 爱色影爱色搞搞 97资源库 大香萑a久草视频 久草在线福利资站 青青草成人在线免费视频 久久精品国can视频在热 99热国产情侣偷拍 国产自拍 在线 凹凸分类视频97免费 av啪啪中文网站 青青草91自拍视频 奇米影视第四色 国产无限制自拍 大香蕉伊人精品在线 久久手机看片国产免费 无码大香蕉网伊人色 亚洲激情色 久草99福利资源 狼人色终合网站 91色国产色去色 2019奇米777奇米网 久久草妹妹色 米奇影院888奇米色 青青青草成人免费现看 超碰自拍 在线99热这里精品 色琪琪永久无码 伊人大香蕉成人视频综合 国产自拍视频在线 大香蕉伊人久操在线 青青草久草热久久草 偷拍自拍第四色 奇米网电影网 超碰99久久天天拍日日操 天天拍天天拍久草片 激情图片,激情小说 超碰碰av大香蕉伊人 久草97大香蕉伊人 美女伊人色情香蕉网站 青青草华人免费视频在线 大香蕉伊人久草视频 奇米网在线手机在线 青草七次郞视频观看 青青草公开在线观看 狠狠夜夜干大香蕉伊人 777奇米网 日逼视频网站 欧美人和动物XXX 大香蕉色 欧美 国产 奇米影院首页 大香蕉伊人久久爱在线 青青青草免费手机播放 国产青青草 欧美一级黑寡妇夜夜干 啪啪 国产精品 东方aⅴ在线看 手机看A片 777米奇色狠狠俺去啦 香蕉网站伊人中文字幕 久操在线新免费视频 伊人影院在线大香 大香蕉成人伊人在线视频 青青草成人在线视频观看 91国产自拍偷拍视频 青青草色爱久久 精品国产自拍 小色狗 琪琪热热色无码 影音先锋大香蕉久草资源 小明视频看看成人免费 俺去了色网婷婷色 久久色情片 超碰在线青青草 超碰视频起碰视频 国产偷拍自拍影音先锋 小明视频看看成人免费 俺去了色网婷婷色 久久色情片 超碰在线青青草 超碰视频起碰视频 国产偷拍自拍影音先锋 老鸭窝在线视频 www.奇米在线四色 老版本日本怡春院 强奸乱伦在线观看 青青草在观视频 色琪琪在线视频原网 欧美色色大香焦 欧美色热图 亚洲香蕉手机在线观看视频 偷拍偷窥自拍网站 超91在线观看 最新奇米奇色777在线 婷婷网站 微拍秒拍福利视频 自拍在线 精品视频 欧美情色无码在线 久草激情视频 午夜高清影院在线观看 第四色青娱乐奇米影视 青青草在线综合 99热这里有精品 自拍偷拍影音先锋 国产自拍 先锋影音 成人在线视频97 久草在线免费观看大香蕉 99er久久国产精品在线 精品国产在线偷拍 啪啪青青草视频 国内偷拍 亚洲 大香蕉成人手机在线 在线伊人大香蕉手机版 久草伊人久草视频 伊人久久青青草综合网 青青草手机在线视频 青青草久久爱大香蕉 国产青青草自拍 伊人大香蕉在线精品 97资源总站久久爱视频 自拍中文字幕 av图片在线看 久草视频福利免费资源站 自拍国产视频在线 www.琪琪色 爱色影爱色搞搞 97资源库 大香蕉在线视频免费观看 a片直播妹子在线视频 a.v在线视频 开心五月色婷婷免费 香蕉福利视频在线观 青青草成人+激情偷拍 青青草视频大香蕉伊人网 av啪啪中文网站 青青草91自拍视频 奇米影视第四色 国产无限制自拍 大香蕉伊人精品在线 久久手机看片国产免费 无码大香蕉网伊人色 亚洲激情色 久草99福利资源 狼人色终合网站 91色国产色去色 2019奇米777奇米网 久久草妹妹色 米奇影院888奇米色 青青青草成人免费现看 超碰自拍 在线99热这里精品 色琪琪永久无码 伊人大香蕉成人视频综合 国产自拍视频在线 大香蕉伊人久操在线 青青草久草热久久草 偷拍自拍第四色 奇米网电影网 超碰99久久天天拍日日操 天天拍天天拍久草片 激情图片,激情小说 青青草久草热久久草 偷拍自拍第四色 奇米网电影网 超碰99久久天天拍日日操 天天拍天天拍久草片 操好屌色 米奇先锋 久草 偷拍 亚洲,偷拍,自拍,精品 伊人大香蕉综合色 大香蕉久久久 成人色啪啪 大香蕉色看片 欧美自拍在线 久久色综合网站xoxo 久热草大香蕉在线视频 久久大香蕉视频网 肏逼免费视频在线 网友自拍偷拍 欧美 国产 奇米影院首页 大香蕉伊人久久爱在线 青青青草免费手机播放 国产青青草 欧美一级黑寡妇夜夜干 啪啪 国产精品 东方aⅴ在线看 手机看A片 777米奇色狠狠俺去啦 香蕉网站伊人中文字幕 久操在线新免费视频 伊人影院在线大香 大香蕉成人伊人在线视频 青青草成人在线视频观看 91国产自拍偷拍视频 青青草色爱久久 精品国产自拍 小色狗 琪琪热热色无码 影音先锋大香蕉久草资源 小明视频看看成人免费 俺去了色网婷婷色 久久色情片 超碰在线青青草 欧美激情图片 自拍超碰 久草视频在线 天天 综合色伊人网 大香蕉视频成人中文网 大香蕉伊人欧美色 久热在线播放中文字幕 青青草久草福利 欧美色色大香焦 欧美色热图 亚洲香蕉手机在线观看视频 偷拍偷窥自拍网站 超91在线观看 最新奇米奇色777在线 婷婷网站 微拍秒拍福利视频 自拍在线 精品视频 欧美情色无码在线 久草激情视频 午夜高清影院在线观看 第四色青娱乐奇米影视 青青草在线综合 99热这里有精品 自拍偷拍影音先锋 国产自拍 先锋影音 成人在线视频97 久草在线免费观看大香蕉 99er久久国产精品在线
    久久草2019在线观看 99这里有精品 大香蕉免费公开青青草 狠狠色丁香婷婷综合 国产久草福利手机在线 青青草黄色三级网站 大香蕉他也啪 青青草视频大香蕉伊人网 久久爱大香焦在线视频 日本有码视频 成人视屏 国产精品91在线 91国产自拍小视频 伊人狼人香蕉网小说 青青草香蕉草久在线 av青青操 亚洲自拍欧美 91 国产 在线 97超碰资源共享 青青草伊人大香蕉 奇米四色网 国産偷拍91 精品国产在线自拍 伊人大香蕉色琪琪影院 caoprom超碰 青青视频在线视频 开心五月婷婷色婷在线 第四色色 Caoprom超碰视频 亚洲图片欧美图色姐 天天干情色网 操妹妹干妹妹 丁香五月婷婷伊人大香蕉 国产精品自拍偷拍在线 青青青成人社区 成人av在线 碰碰视频在线免费播放 影音先锋 小说色 久久草大香蕉 亚洲情色狼人网 思思久久re热线播放 久久草超碰 播播影院私人影院 大香蕉他也啪 米奇影视 成人国产老鸭窝 伊人大香蕉久久天天啪 男人的天堂 国产精品自偷拍 很很鲁在线97