国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

css 垂直居中方法匯總

CarterLi / 2921人閱讀

摘要:優(yōu)點(diǎn)寫(xiě)法簡(jiǎn)單,適應(yīng)性好缺點(diǎn)兼容性一般,不支持瀏覽器小節(jié)以上共有種方式來(lái)實(shí)現(xiàn)垂直居中的效果,個(gè)人是最青睞第種方式的,兼容性好,適應(yīng)性好,各位小伙伴還有沒(méi)有其他的實(shí)現(xiàn)方式呢

查看原文可以有更好的排版效果哦

前言

居中是平時(shí)工作中的最常見(jiàn)的一種需求,各種圖片居中或者各種彈窗,水平居中還好,特別是垂直居中,很多初學(xué)者表示太難寫(xiě)了,現(xiàn)在列舉一些常用的方法。

實(shí)戰(zhàn)

這里只講述css相關(guān)的方法,js暫時(shí)不提,畢竟這是樣式上的事情,就不勞煩js出手了。

1. top 50% ;margin-top:-自身高度/2

記得最早工作的時(shí)候?qū)W到的第一個(gè)方法就是,top50%,然后把自身向上移動(dòng)自身高度的一半,具體實(shí)現(xiàn)是



這樣就很容易實(shí)現(xiàn)了垂直居中,但這種必須要知道自身的高度,才能使用margin-top:-100px這種來(lái)達(dá)到目的。

優(yōu)點(diǎn): 寫(xiě)法簡(jiǎn)單,兼容性好

缺點(diǎn): 必須知道目標(biāo)元素的高度,而且高度必須是固定的值,否則樣式要跟著相應(yīng)的改動(dòng),不夠靈活

2. top 50% ; transforms:translateY(-50%)

這個(gè)方法和上述原理一致,只不過(guò)向上位移換成了transforms:translateY寫(xiě)法

.box{
  positon:absolute; 
  width:200px; 
  height:200px; 
  background:orange; 
  top:50%; 
  transforms:translateY(-50%) 
}

由于用到了css3的新特性,所以對(duì)瀏覽器的要求就比較高了

優(yōu)點(diǎn): 寫(xiě)法簡(jiǎn)單,適應(yīng)性好

缺點(diǎn): 兼容性一般,不支持ie8瀏覽器

3. margin:auto

大家平時(shí)可能都用過(guò)margin:0 auto來(lái)實(shí)現(xiàn)一個(gè)div水平居中吧,其實(shí)也是可以做垂直居中的。

.box{
  positon:absolute; 
  width:200px; 
  height:200px; /**必須要指明寬高**/
  background:orange; 
  top:0;
  bottom:0; 
  margin:auto
}

是不是很神奇?但是有個(gè)地方要注意的是,這個(gè)必須要指明寬高,不然的話(huà)top:0;bottom:0就把容器撐滿(mǎn)了。

優(yōu)點(diǎn): 寫(xiě)法簡(jiǎn)單,適應(yīng)性好,兼容性好

缺點(diǎn): 需要指明元素寬高,如果目標(biāo)元素寬高是變化的,你可以通過(guò)js來(lái)輔助生成

4. vertical-align:middle

這個(gè)方法是我最喜歡用的一個(gè)方法,基本滿(mǎn)足上述的全部要求,主要用到了多個(gè)元素vertical-align:middle實(shí)現(xiàn)垂直居中,由于需要多個(gè)元素才能生效(不然一個(gè)元素跟誰(shuí)對(duì)齊呢),所以再添加一個(gè)i標(biāo)簽



這樣就實(shí)現(xiàn)垂直居中,而且不需要關(guān)注目標(biāo)元素的尺寸,適應(yīng)性強(qiáng)

通常我在用的時(shí)候用用一個(gè)偽元素來(lái)代替,避免在html中新增結(jié)構(gòu)



這樣在需要垂直居中的父級(jí)上添加一個(gè).mfix就可以實(shí)現(xiàn)垂直居中了。

優(yōu)點(diǎn): 適應(yīng)性好,兼容性好

缺點(diǎn): 可能稍微有點(diǎn)復(fù)雜吧。

5. writing-mode

這個(gè)方法是在張?chǎng)涡竦牟┛椭邪l(fā)現(xiàn)的,也挺有意思。

正常情況下比如text-align:centerinline-block元素可以實(shí)現(xiàn)水平居中,假設(shè)我們通過(guò)writing-mode將水平流改成豎直流,不就形成垂直居中了嗎?

在父級(jí)上加上如下樣式

.content{
  writing-mode: tb-rl; /**內(nèi)容從上往下(top-bottom),從右往左(right-left)垂直流動(dòng),下面是一些兼容性寫(xiě)法**/
  -webkit-writing-mode: vertical-rl;      
  writing-mode: vertical-rl;
  text-align: center;
}

這樣也可以做到垂直居中,不過(guò)要注意的是,現(xiàn)在里面的文本也會(huì)變成從上到下排列,所以需要重置一下。

還有一個(gè)問(wèn)題就是,如果這個(gè)時(shí)候要想水平居中就gg了,原理和剛才反過(guò)來(lái),可以通過(guò)套一層改變流向來(lái)解決,具體實(shí)現(xiàn)可以參考demo

優(yōu)點(diǎn): 適應(yīng)性好,兼容性好

缺點(diǎn): 算是一個(gè)偏方吧。而且writing-mode的語(yǔ)法太雜,各種各樣的,所以。。玩玩就好

6. flex大法

這個(gè)方法接觸過(guò)css3的應(yīng)該都接觸過(guò)吧,只要在父級(jí)加上如下代碼就能實(shí)現(xiàn)垂直居中了

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

如果對(duì)瀏覽器沒(méi)什么要求,盡量都用這種方式吧。

優(yōu)點(diǎn): 寫(xiě)法簡(jiǎn)單,適應(yīng)性好

缺點(diǎn): 兼容性一般,不支持ie8瀏覽器

小節(jié)

以上共有6種方式來(lái)實(shí)現(xiàn)垂直居中的效果,個(gè)人是最青睞第4種方式的,兼容性好,適應(yīng)性好,各位小伙伴還有沒(méi)有其他的實(shí)現(xiàn)方式呢?

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/113906.html

相關(guān)文章

  • CSS 常用的定位和布局方法匯總(已添加源碼地址)

    CSS-Layout 旨在打造詳盡的前端布局代碼學(xué)習(xí)庫(kù)(自從用了框架開(kāi)發(fā),CSS生疏了不少,所以開(kāi)這個(gè)庫(kù)練練手)SF不能正確解析含有中文的網(wǎng)址,所以某些預(yù)覽鏈接無(wú)法跳轉(zhuǎn),請(qǐng)?jiān)L問(wèn)我的博客閱讀此文 常見(jiàn)定位方法 水平居中 子元素為行內(nèi)元素還是塊狀元素,寬度一定還是寬度未定,采取的布局方案不同。 方案選擇基本思路:子元素為 行內(nèi)元素:對(duì)父元素設(shè)置text-align:center; 定寬塊狀元素: 設(shè)...

    loonggg 評(píng)論0 收藏0
  • css-元素居中

    摘要:一水平居中行內(nèi)元素水平居中使用屬性可以實(shí)現(xiàn)在行內(nèi)元素包括在塊級(jí)父元素水平居中。使用負(fù)已知高度寬度使用使用使用三水平垂直居中公共結(jié)構(gòu)塊級(jí)元素垂直居中。 本文重要是匯總了關(guān)于水平居中,垂直居中,還有水平垂直居中的各種方法。 一、水平居中 1.行內(nèi)元素水平居中 使用text-align:center;屬性可以實(shí)現(xiàn)在行內(nèi)元素(包括:inline,inline-block、inline-tabl...

    miqt 評(píng)論0 收藏0
  • 前端面試匯總(html+css)

    摘要:前端頁(yè)面有哪三層組成分別是什么有什么作用前端頁(yè)面由結(jié)構(gòu)層,表示層,行為層組成。作用標(biāo)準(zhǔn)模式與兼容模式有什么區(qū)別聲明位于文檔的第一行,處于標(biāo)簽之前,告知瀏覽器的解析器用什么文檔標(biāo)準(zhǔn)解析這個(gè)文檔,不存在或者格式不正確會(huì)導(dǎo)致文檔以兼容模式存在。 HTML: 1、前端頁(yè)面有哪三層組成?分別是什么?有什么作用? 前端頁(yè)面由結(jié)構(gòu)層HTML,表示層CSS,行為層JS組成。 2、HTML5為什么只用...

    wangjuntytl 評(píng)論0 收藏0
  • 前端面試匯總(html+css)

    摘要:前端頁(yè)面有哪三層組成分別是什么有什么作用前端頁(yè)面由結(jié)構(gòu)層,表示層,行為層組成。作用標(biāo)準(zhǔn)模式與兼容模式有什么區(qū)別聲明位于文檔的第一行,處于標(biāo)簽之前,告知瀏覽器的解析器用什么文檔標(biāo)準(zhǔn)解析這個(gè)文檔,不存在或者格式不正確會(huì)導(dǎo)致文檔以兼容模式存在。 HTML: 1、前端頁(yè)面有哪三層組成?分別是什么?有什么作用? 前端頁(yè)面由結(jié)構(gòu)層HTML,表示層CSS,行為層JS組成。 2、HTML5為什么只用...

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

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

0條評(píng)論

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