1. 程式人生 > >CSS實現垂直居中

CSS實現垂直居中

方案一:line-height

適用於單行文字,
居中前:
這裡寫圖片描述

<div class="vertical">居中元素</div>

.vertical {
            height: 100px;
            line-height:100px;
            border: 1px solid red;
        }

居中後:
這裡寫圖片描述

說明:這種對於單行的文字很有效果
適合應用在文字和圖片上,並且這種方法,當你文字不是單行時,效果極差,差到讓你感到噁心。

這種方法對運用在小元素上是非常有用的,比如說讓一個button、圖片或者單行文字欄位。

    <div class="vertical">
        <p> 居中元素</p>
        <p>另一個文字呢</p>
    </div>

效果極差
這裡寫圖片描述
因為line-height是行高,所以每行之間的間距就是100px;

方案二:設定絕對定位,高度(top)和margin-top為高度的一半

    <div class="container">
        <div class="vertical">
            居中元素
        </div
> </div> /---css-------/ .container { position: relative; border: 1px solid blue; height: 200px; } .vertical { height: 100px; position: absolute; top: 50%; margin-top: -50px; border: 1
px solid red; }

這裡寫圖片描述

實現了中間那個紅框元素的居中

優點:在各大瀏覽器都能適用;
缺點: 基於絕對定位來的,一定要把握住父元素是誰

另外此方法是通過絕對定位來實現的,那麼用這種方法實現元素的垂直居中需要注意以下幾點:其一元素定位關係到一個相對定位參考,所以要保證元素是相對於哪個為參考座標;另外需要設定給元素明確定一個高度值並且給元素設定一個負值的margin-top,而且值為元素高度的一半。

這裡我建議大家給元素定一個寬度值,因為元素進行絕對定位後脫離文件流,其寬度是根據元素內容所佔寬度來計算的(不是100%),為這能讓其視覺效果更好,最好給元素定義一個寬度值。

方案三:利用table-cell實現垂直居中

使用div模擬表格佈局

        .container {
            position: relative;
            border: 1px solid blue;
            height: 200px;
            display: table;
        }

        .vertical {
            display: table-cell;
            vertical-align: middle;
            border: 1px solid red;
        }

html

    <div class="container">
        <div class="vertical">
            居中元素
        </div>
    </div>

這裡寫圖片描述
這裡寫圖片描述

優點:此方法沒有高度限制,不會出現滾動條等問題;
缺點:
不相容ie6 ie7;
因為display:table在IE6-7中不被支援

方案四:在居中元素前加一個空的浮動元素

這個浮動元素的高度設定為容器的一半;margin-bottom設定為居中元素高度的一半;

如圖:這裡我用了一個綠色的border來展示這個隱藏元素;可以看到其實就是它把那個位置佔據了,因此居中元素就自動往下平移了;

這裡寫圖片描述

        .container {
            position: relative;
            border: 1px solid blue;
            height: 400px;
            width: 400px;
            display: table;
        }

        .vertical {
            height: 300px;
            clear: both;
            border: 1px solid red;
        }

        .floater {
            float: left;
            height: 50%;
            margin-bottom: -150px;
            border: 5px solid green;
        }

html

    <div class="container">
        <div class="floater"></div>
        <div class="vertical">
        </div>
    </div>

利用padding

    <div class="columns">
        <div class="item">test</div>
    </div>
        .columns {
            position: relative;
            border: 1px solid blue;
            /* height: 400px; */
            width: 400px;
            display: table;
        }
        .item {
            padding-top: 30px;
            padding-bottom: 30px;
        }

要點:設定上下一樣的padding;
缺點:外容器高度固定不能達到效果
外容器高度不固定:
這裡寫圖片描述
高度固定(height:400px):
這裡寫圖片描述
就不居中了

相關推薦

盤點8種CSS實現垂直居中水平居中的絕對定位居中技術

其他 margin phone ie10 logs html mar over 防止 1.絕對定位居中(Absolute Centering)技術   我們經常用margin:0 auto;來實現水平居中,而一直認為margin:auto;不能實現垂直居中......實際上

CSS實現垂直居中水平居中

增加 position 大小 -a 添加 abs 100% 布局 table 1、絕對定位居中(子元素需設置寬高) > 原理:元素在過度受限情況下,將margin設置為auto,瀏覽器會重算margin的值,過度受限指的是同時設置top/bottom與height或

css實現垂直居中的幾種方法

定位 方法 cell 方式 middle ali ddl 顯示 內容 方法1、這個方法把一些 div 的顯示方式設置為表格,因此我們可以使用表格的 vertical-align 屬性。 #wrapper { //代表父元素 display: table; }

CSS實現垂直居中的5種方法

logo cto 溢出 hover 元素垂直居中 OS num -o com 利用 CSS 來實現對象的垂直居中有許多不同的方法,比較難的是選擇那個正確的方法。我下面說明一下我看到的好的方法和怎麽來創建一個好的居中網站。 使用 CSS 實現垂直居中並不容易。有些方法在一些瀏

CSS實現垂直居中的幾種方法

right lin 兼容 bar 實現 syntax info pro ems 垂直居中是布局中十分常見的效果之一,為實現良好的兼容性,PC端實現垂直居中的方法一般是通過絕對定位,table-cell,負邊距等方法。有了css3,針對移動端的垂直居中就更加多樣化。 方法1:

頑石系列:CSS實現垂直居中的五種方法

如果 -c align 大於 lock shu 彈性 ext explorer 頑石系列:CSS實現垂直居中的五種方法 在開發過程中,我們可能沿用或者試探性地去使用某種方法實現元素居中,但是對各種居中方法的以及使用場景很不清晰。參考的內容鏈接大概如下: 行內元素:htt

CSS實現垂直居中

總結歸納一下現在學到的純CSS實現水平垂直居中的方法: (1)如果元素的寬度是已知的,那麼可以利用父類元素設定成position:relative,子類設定為position:absolute 然後定位距離上margin為50%,左50%,再減去元素自身的寬度就可以實現,例子程式碼: <

css實現垂直居中的3種方法

方法一 這個方法吧一些div的顯示方式設定為表格,因此我們可以使用表格的vertical-align property屬性 html: <div id="wrapper">         <div id="cel

css實現垂直居中的方法

垂直居中是佈局中十分常見的效果之一,為實現良好的相容性,PC端實現垂直居中的方法一般是通過絕對定位,table-cell,負邊距等方法。有了css3,針對移動端的垂直居中就更加多樣化。 方法1:table-cell html結構: <div class="box box1">

CSS實現垂直居中水平居中的絕對定位居中技術

Ⅰ.絕對定位居中(Absolute Centering)技術 我們經常用margin:0 auto來實現水平居中,而一直認為margin:auto不能實現垂直居中……實際上,實現垂直居中僅需要宣告元素高度和下面的CSS:

css實現垂直居中的幾種方式(佈局常用)

前提: html模板: <div class="parent"> <div class="content">內容垂直居中</div> </div> 宣告:以下示例,主要實現垂直居中的樣式程式碼為加粗的部分 一、對單行

CSS實現垂直居中

方案一:line-height 適用於單行文字, 居中前: <div class="vertical">居中元素</div> .vertical { height: 100px;

css實現垂直水平居中的方法(個數不限)?

實現 容易 css3 pre height blog pad 絕對定位 fresh 方法一:使用絕對定位 大家都知道margin:0 auto;能夠實現水平居中,但卻不知道margin:0 auto;也是可以實現垂直居中的; 給居中元素添加如下樣式:

css實現垂直水平居中

otto div bsp 不能 水平 margin 垂直居中 auto absolut 我們經常用margin:0 auto來實現水平居中,而一直認為margin:auto不能實現垂直居中……實際上,實現垂直居中僅需要聲明元素高度和下面的CSS: .Absolute-Ce

css實現垂直水平居中的5種方法

進行 posit tran cto ans otto data -c ive css實現垂直水平居中的5種方法 給父元素設置table-cell,text-align,vertical-align #big{ width: 200px;

css實現水平居中垂直居中的幾種方式

常用居中方式 水平居中 a:行內元素:text-align:center; 程式碼: <input type="text" value="這是一個行內元素" style="text-align: center"/> 效果圖: 已知寬度的塊

CSS中有哪些方法可以實現垂直居中

這裡是修真院前端小課堂,每篇分享文從 【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴充套件思考】【更多討論】【參考文獻】 八個方面深度解析前端知識/技能,本篇分享的是: 【CSS中有哪些方法可以實現垂直居中? 】 標題: CSS中有哪些方法可以實現垂直居中?

css 實現垂直水平居中常用方法

html <div class="outer"> <div class="inner"></div> </div> 基本樣式 .outer { background: #ddd; width: 500px;

css實現垂直水平居中

6種方案 1、絕對定位+margin:auto <style type="text/css"> .wrp { background-color: #b9b9b9; width: 240px; heig

CSS:移動端實現垂直居中的方法

方法1:table-cell html結構 <div class="box box1"> <span>垂直居中</span> </div> CSS .box1{ display: t