成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

垂直居中相關(guān)知識(shí)總結(jié)

Labradors / 1352人閱讀

摘要:垂直居中相關(guān)知識(shí)總結(jié)前言工作中用到了很多關(guān)于垂直居中相關(guān)的知識(shí)之前,在上提問(wèn)了個(gè)問(wèn)題關(guān)于垂直居中,大家有沒(méi)有什么比較好的建議。

垂直居中相關(guān)知識(shí)總結(jié) 前言

工作中用到了很多關(guān)于垂直居中相關(guān)的知識(shí)之前,在SF上提問(wèn)了個(gè)問(wèn)題CSS關(guān)于垂直居中,大家有沒(méi)有什么比較好的建議。非常感謝各位前輩對(duì)我的幫助,前輩們給的答案都非常多也各式各樣,我覺(jué)得有必要把大家的回答總結(jié)一下。

方法總結(jié) 一、絕對(duì)定位之a(chǎn)utomargin 先來(lái)看一下絕對(duì)定位的概念:

position : absolute;

將被賦予此定位方法的對(duì)象從文檔流中拖出,使用left,right,top,bottom等屬性相對(duì)于其最接近的一個(gè)最有定位設(shè)置的父級(jí)對(duì)象進(jìn)行絕對(duì)定位,如果對(duì)象的父級(jí)沒(méi)有設(shè)置定位屬性,即還是遵循HTML定位規(guī)則的,則依據(jù) body 對(duì)象左上角作為參考進(jìn)行定位。絕對(duì)定位對(duì)象可層疊,層疊順序可通過(guò) z-index 屬性控制,z-index值為無(wú)單位的整數(shù),大的在最上面,可以有負(fù)值。

說(shuō)明:

使用絕對(duì)定位要求元素必須設(shè)置明確高度。內(nèi)容超過(guò)元素高度時(shí)需要設(shè)置overflow決定滾動(dòng)條的出現(xiàn)

樣式:

HTML結(jié)構(gòu)

我是絕對(duì)定位
我在垂直居中
歐耶

CSS樣式

.absolute-center {
    position: absolute;
    width: 100px;
    height: 100px;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    background: #f0f0f0;
    /*IE不支持resize*/
    resize: both;
    overflow: auto;
}

頁(yè)面呈現(xiàn)樣式

優(yōu)缺點(diǎn)分析

優(yōu)點(diǎn):支持響應(yīng)式,只有這種方法在resize后仍然居中;

缺點(diǎn):沒(méi)有顯式設(shè)置overflow時(shí),內(nèi)容超過(guò)元素高度時(shí)會(huì)溢出,沒(méi)有滾動(dòng)條;

二、絕對(duì)定位之負(fù)margin 說(shuō)明:

已知元素高度后,使用絕對(duì)定位將top設(shè)置為50%,mergin-top設(shè)置為內(nèi)容高度的一半(height + padding) / 2;內(nèi)容超過(guò)元素高度時(shí)需要設(shè)置overflow決定滾動(dòng)條的出現(xiàn);top:50%元素上邊界位于包含框中點(diǎn),設(shè)置負(fù)外邊界使得元素垂直中心與包含框中心重合;

樣式:

CSS樣式

.absolute-center {
    position: absolute;
    width: 100px;
    height: 100px;
    top: 50%;
    left: 0;
    right: 0;
    margin: auto;
    margin-top: -50px;
    background: #f0f0f0;
}

頁(yè)面呈現(xiàn)樣式

優(yōu)缺點(diǎn)分析

優(yōu)點(diǎn):代碼量少、適用于所有瀏覽器、不需要嵌套標(biāo)簽;

缺點(diǎn):不支持響應(yīng)式(不能使用百分比、min/max-width);

三、額外div 說(shuō)明:

在需要居中的元素外插入一個(gè)div,設(shè)置外div的height為50%,margin-bottom為內(nèi)部元素的一半(height+padding)/2。內(nèi)容超過(guò)元素高度時(shí)需要設(shè)置overflow決定滾動(dòng)條的出現(xiàn)。

樣式:

HTML結(jié)構(gòu)

我是絕對(duì)定位
我在垂直居中
歐耶

CSS樣式

.outer {
    height: 50%;
    margin-bottom: -50px;
}
.inner {
    margin: auto;
    height: 100px;
    width: 100px;
    background-color: #f0f0f0;
}

頁(yè)面呈現(xiàn)樣式

優(yōu)缺點(diǎn)分析

優(yōu)點(diǎn):瀏覽器兼容性好,支持舊版本ie;

缺點(diǎn):需要額外元素、不支持響應(yīng)式;

四、table布局 說(shuō)明:

關(guān)于display:table-cell應(yīng)用,張?chǎng)涡袂拜厡戇^(guò)一篇博文我所知道的幾種display:table-cell的應(yīng)用;我就不詳細(xì)講述。

display:table此元素會(huì)作為塊級(jí)表格來(lái)顯示 類似

table標(biāo)簽

,表格前后帶有換行符。

display:table-cell 此元素會(huì)作為一個(gè)表格單元格顯示 類似

td 和 th標(biāo)簽

原理:

利用表布局特點(diǎn),vertical-align設(shè)置為Middle后,單元格中內(nèi)容中間與所在行中間對(duì)齊。

樣式:

1.HTML

我是絕對(duì)定位
我在垂直居中
歐耶

2.CSS樣式

.container{
    display: table;
    height: 200px;
    width: 100px;
    background: #f0f0f0;
}
.absolute-center{
    /*將cell垂直居中,如果外層div不為table則tablecell必須有高度*/
    display: table-cell;
    vertical-align: middle;
}

3.頁(yè)面呈現(xiàn)

優(yōu)缺點(diǎn)分析

優(yōu)點(diǎn):支持任意內(nèi)容的可變高度、支持響應(yīng)式;

缺點(diǎn):每一個(gè)需要垂直居中的元素都會(huì)需要加上額外標(biāo)簽(需要table、table-cell兩個(gè)額外元素);

五、line-height方式 說(shuō)明:

該方式只適用于情況比較簡(jiǎn)單的單行文本,只需要簡(jiǎn)單地把 line-height 設(shè)置為那個(gè)對(duì)象的 height 值就可以使文本居中了。這種方法在小元素上非常有用,例如使按鈕文本或者單行文本居中。

原理:

如果line-height高度大于font-size,生于高度瀏覽器會(huì)平分到文字上下兩端。

樣式:

1.HTML

    
我是line-height

2.CSS樣式

        .container {
            width: 200px;
            height: 100px;
            line-height: 100px;
            background-color:#f0f0f0;
        }

3.頁(yè)面呈現(xiàn)

優(yōu)缺點(diǎn)分析

優(yōu)點(diǎn):適用于所有瀏覽器 無(wú)足夠空間時(shí)不會(huì)被截?cái)啵?/p>

缺點(diǎn):只對(duì)文本有效(塊級(jí)元素?zé)o效) 多行時(shí),斷詞比較糟糕;

六、inline-block方式 說(shuō)明:

將center元素display設(shè)置為inline-block,vertical-align設(shè)置為middle,為包含框設(shè)置after偽元素,將偽元素display設(shè)置為inline-block,vercial-align設(shè)置為middle,同時(shí)設(shè)置height為100%,撐開容器。

原理:

為同一行的inline-block元素設(shè)置vertical-align:middle,該行內(nèi)的inline-block元素會(huì)按照元素的垂直中心線對(duì)齊。

樣式:

1.HTML

    
我是inline-block
我在垂直居中
歐耶

2.CSS樣式

        .outer {
            display: block;
        }       
        .outer:after {
            content: "";
            display: inline-block;
            vertical-align: middle;
            height: 100%;
        }    
        .inner {
            background-color: #f0f0f0;
            display: inline-block;
            vertical-align: middle;
        }

3.頁(yè)面呈現(xiàn)

優(yōu)缺點(diǎn)分析

優(yōu)點(diǎn):支持響應(yīng)式、支持可變高度;

缺點(diǎn):會(huì)加上額外標(biāo)記;

七、JS編寫居中 說(shuō)明:

與CSS方法的絕對(duì)定位相似,不過(guò)具體的定位方式是在js中寫出,便于維護(hù)。

樣式:

HTML結(jié)構(gòu)

    
我是js居中
我在垂直居中
歐耶

CSS樣式

        #box-out {
            width: 200px;
            height: 200px;
        }
        #box {
            position: absolute;
            background-color: #f0f0f0;
            width: 100px;
            height: 100px;
        }

3.javascript

    

4.頁(yè)面呈現(xiàn)

八、Flex居中 說(shuō)明:

真正的垂直居中布局,全都是優(yōu)點(diǎn),缺點(diǎn)就是IE支持不佳...我覺(jué)得有些時(shí)候該放棄就可以放棄ie了 :)。Flex阮一峰老師講的非常非常非常詳細(xì),我就不多做介紹了,貼上阮一峰老師的博客

Flex 布局教程:語(yǔ)法篇;

Flex 布局教程:實(shí)例篇;

總結(jié)

首先非常感謝回復(fù)我問(wèn)題的各位前輩。
目前尋找了這么八種常用的方法,基本囊括了所有的垂直居中的方法。

提別感謝

糖伴西紅柿的博文;
木的樹的博文;
阮一峰老師的博客;
張?chǎng)涡窭蠋煹牟┛?
等等。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/78602.html

相關(guān)文章

  • 垂直居中相關(guān)知識(shí)總結(jié)

    摘要:垂直居中相關(guān)知識(shí)總結(jié)前言工作中用到了很多關(guān)于垂直居中相關(guān)的知識(shí)之前,在上提問(wèn)了個(gè)問(wèn)題關(guān)于垂直居中,大家有沒(méi)有什么比較好的建議。 垂直居中相關(guān)知識(shí)總結(jié) 前言 工作中用到了很多關(guān)于垂直居中相關(guān)的知識(shí)之前,在SF上提問(wèn)了個(gè)問(wèn)題CSS關(guān)于垂直居中,大家有沒(méi)有什么比較好的建議。非常感謝各位前輩對(duì)我的幫助,前輩們給的答案都非常多也各式各樣,我覺(jué)得有必要把大家的回答總結(jié)一下。 方法總結(jié) 一、絕對(duì)定...

    GeekGhc 評(píng)論0 收藏0
  • 前端-CSS3&H5

    摘要:高度模型淺識(shí)為的簡(jiǎn)寫,簡(jiǎn)稱為塊級(jí)格式化上下文,為瀏覽器渲染某一區(qū)域的機(jī)制,中只有和中還增加了和。并非所有的布局都會(huì)在開發(fā)中使用,但是其中也會(huì)涉及一些知識(shí)點(diǎn)。然而在不同的純制作各種圖形純制作各種圖形多圖預(yù)警 一勞永逸的搞定 flex 布局 尋根溯源話布局 一切都始于這樣一個(gè)問(wèn)題:怎樣通過(guò) CSS 簡(jiǎn)單而優(yōu)雅的實(shí)現(xiàn)水平、垂直同時(shí)居中。記得剛開始學(xué)習(xí) CSS 的時(shí)候,看到 float 屬性不...

    xiaolinbang 評(píng)論0 收藏0
  • margin相關(guān)基本知識(shí)

    摘要:也能用于內(nèi)聯(lián)元素這是規(guī)范所允許的的和屬性對(duì)非替換內(nèi)聯(lián)元素?zé)o效例如和。解決方法把左側(cè)塊級(jí)元素更改為內(nèi)聯(lián)元素,比如把更換為。 什么是 margin ? CSS 邊距屬性定義元素周圍的空間。通過(guò)使用單獨(dú)的屬性,可以對(duì)上、右、下、左的外邊距進(jìn)行設(shè)置。也可以使用簡(jiǎn)寫的外邊距屬性同時(shí)改變所有的外邊距。——W3School 邊界,元素周圍生成額外的空白區(qū)??瞻讌^(qū)通常是指其他元素不能出現(xiàn)且父元素背景可見的區(qū)...

    godiscoder 評(píng)論0 收藏0
  • 總結(jié)的一些JavaScript的冷知識(shí)

    摘要:例如要?jiǎng)h除數(shù)組的第個(gè)元素,可以使用這樣的語(yǔ)句不過(guò)對(duì)于大型數(shù)組來(lái)說(shuō),這個(gè)函數(shù)的效率可能不高??蛇x參數(shù)可以限制被分割的片段數(shù)量??创a吧下面的代碼利用的來(lái)實(shí)現(xiàn)垂直居中和水平居中轉(zhuǎn)自快樂(lè)人生,積極進(jìn)取總結(jié)的一些的冷知識(shí) 1、!!將一個(gè)值方便快速轉(zhuǎn)化為布爾值 console.log( !!window===true ); 2、不聲明第三個(gè)變量實(shí)現(xiàn)交換 var a=1,b=2; a=[b...

    lingdududu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<