摘要:水平水平居中有行內(nèi)元素和塊元素,行內(nèi)元素有文字圖片鏈接等塊元素主要是等元素。塊元素對于一個(gè)塊元素,可以設(shè)置其和自動,就像這樣在線查看無論塊元素的寬度是否已知,都可以實(shí)現(xiàn)水平居中。
這里主要參考的是CHRIS COYIER寫的一篇的文章(點(diǎn)擊查看),主要講了關(guān)于css水平、垂直居中的一些方法,每個(gè)方法后面都有一個(gè)demo,可以在線查看效果。
1 水平水平居中有行內(nèi)元素和塊元素,行內(nèi)元素有文字、圖片、鏈接等;塊元素主要是div、p等block元素。
1.1 行內(nèi)元素對于行內(nèi)元素可以使用如下實(shí)現(xiàn)水平居中(在線查看demo):
.blocklist1_1 { text-align: center; }
這種方法對于inline,inline-block,inline-table等都有效。
1.2 塊元素對于一個(gè)塊元素,可以設(shè)置其margin-left和margin-right自動,就像這樣(在線查看demo):
.blocklist1_2 .div1 { margin: 0px auto; }
無論塊元素的寬度是否已知,都可以實(shí)現(xiàn)水平居中。
1.3 多個(gè)塊元素如果有多個(gè)塊元素需要水平居中時(shí),有兩種辦法可以實(shí)現(xiàn)。一種是借助inline-block,另一種是借助flex。對于第一種方法可以使用如下方式(在線查看demo),設(shè)置塊元素display:inline-block,其父元素水平居中:
..blocklist1_3 .div1 { text-align: center; } .blocklist1_3 .div1 div { display: inline-block; }
用flex的話需要給塊的父元素添加如下樣式(在線查看demo):
.blocklist1_3 .div2 { display: flex; justify-content: center; }2 垂直
垂直居中也分有行內(nèi)元素和塊元素,不過相比水平居中,垂直居中這里需要討論的情況有點(diǎn)多,下面我們一一分析。
2.1 行內(nèi)元素 2.1.1 單行對于單行的行內(nèi)元素,我們只需要設(shè)置其padding-top和padding-bottom值相等即可(在線查看demo):
.blocklist2_1_1 .div1 { padding-top: 20px; padding-bottom: 20px; }
如果我們不能設(shè)置padding的話,而行內(nèi)元素的高度(height=50px)已知時(shí),可以設(shè)置line-height=height,實(shí)現(xiàn)元素的垂直居中(在線查看demo):
.blocklist2_1_1 .div2 { line-height: 50px; height: 50px; }2.1.2 多行
對于多行元素我們有四種方式可以實(shí)現(xiàn)垂直居中:
a.可以像上面那樣通過設(shè)置padding-top和padding-bottom的值相等來實(shí)現(xiàn)垂直居中(demo-1):
.blocklist2_1_2 .div1 { padding: 20px 0px; }
b.可以借助vertical-align屬性來實(shí)現(xiàn)垂直居中(demo-2):
.blocklist2_1_2 .div2 { display: table; } .blocklist2_1_2 .div2>div { display: table-cell; vertical-align: middle; }
c.可以借助flex技術(shù)來實(shí)現(xiàn)垂直居中,只需添加如下樣式(demo-3):
.blocklist2_1_2 .div3 { display: flex; justify-content: center; flex-direction: column; height: 400px; }
d.將一個(gè)全高度的偽元素放置在容器內(nèi),然后設(shè)置文本垂直對齊(demo-4):
.blocklist2_1_2 .div4 { position:relative; } .blocklist2_1_2 .div4::before { content: " "; display: inline-block; height: 100%; width: 1%; vertical-align: middle; } .blocklist2_1_2 .div4>div { display: inline-block; vertical-align: middle; }2.2 塊元素 2.2.1 塊元素高度已知
在網(wǎng)頁布局中有的時(shí)候我們知道元素的高度,有的時(shí)候我們不知道。對于已知高度的塊元素可以這樣設(shè)置來實(shí)現(xiàn)垂直居中(demo):
.blocklist2_2_1 .div { position: relative; } .blocklist2_2_1 .div div { position: absoulte; top: 50%; height: 100px; margin-top: -70px; //這里70px是height*1/2 + padding padding: 20px; }2.2.2 塊元素高度未知
有時(shí)候我們是不知道塊元素的高度的,這時(shí)候可以使用transform來實(shí)現(xiàn)(demo):
.blocklist2_2_2 .div { position: relative; } .blocklist2_2_2 .div div { transform: translateY(-50%); top: 50%; position: absoulte; }2.2.3 利用flex實(shí)現(xiàn)
除了以上兩種辦法,還可以使用flex實(shí)現(xiàn)(demo):
.blocklist2_2_3 .div { display: flex; flex-direction: column; justify-content: center; }3 水平垂直
有的時(shí)候我們不僅希望水平居中還希望垂直居中,可以結(jié)合以上提到的例子進(jìn)行組合實(shí)現(xiàn),主要分為以下三個(gè)方面:
3.1 元素高度、寬度已知當(dāng)元素高度和寬度已知時(shí),可以將元素絕對定位,偏移中心50%,然后使用負(fù)的margin值實(shí)現(xiàn),如下(demo):
.blocklist3_1 .div { position: relative; } .blocklist3_1 .div div { position: absoulte; top: 50%; left: 50%; margin: -120px 0px 0px -220px; //height一半,width一半,另外加上padding值 height: 200px; width: 400px; padding: 20px; }3.2 元素高度、寬度未知
如果元素的高度和寬度未知呢,我們可以使用變換屬性,在兩個(gè)方向賦予50%的負(fù)值,如下(demo):
.blocklist3_2 .div { position: relative; } .blocklist3_2 .div div { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }3.3 利用flexbox實(shí)現(xiàn)
用flex實(shí)現(xiàn)時(shí)需要使用兩個(gè)中心屬性(demo):
.blocklist3_3 .div { display: flex; justify-content: center; align-items: center; }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/115152.html
摘要:水平水平居中有行內(nèi)元素和塊元素,行內(nèi)元素有文字圖片鏈接等塊元素主要是等元素。塊元素對于一個(gè)塊元素,可以設(shè)置其和自動,就像這樣在線查看無論塊元素的寬度是否已知,都可以實(shí)現(xiàn)水平居中。 這里主要參考的是CHRIS COYIER寫的一篇的文章(點(diǎn)擊查看),主要講了關(guān)于css水平、垂直居中的一些方法,每個(gè)方法后面都有一個(gè)demo,可以在線查看效果。 1 水平 水平居中有行內(nèi)元素和塊元素,行內(nèi)元素...
摘要:原載于,本文著重提取文中的方法,不完全翻譯。人們經(jīng)常抱怨在中居中元素的問題,其實(shí)這個(gè)問題其實(shí)并不復(fù)雜,只是因?yàn)榉椒ū姸啵枰鶕?jù)情況從眾多方法中選取一個(gè)出來。 原載于CSS-Trick,本文著重提取文中的方法,不完全翻譯。如有需要,直接原文查看。 人們經(jīng)常抱怨在CSS中居中元素的問題,其實(shí)這個(gè)問題其實(shí)并不復(fù)雜,只是因?yàn)榉椒ū姸?,需要根?jù)情況從眾多方法中選取一個(gè)出來。接下來,我們做一個(gè)‘...
摘要:在文本前面插入一個(gè)高度為百分百的偽元素,讓文本與其垂直對齊。塊級元素或者使用垂直水平居中或者使用 翻譯自 https://css-tricks.com/centering-css-complete-guide/ 預(yù)先給出這樣的樣式 .container { width: 100%; height: 200px; background-color: azur...
摘要:絕對底部前端掘金來自國外的設(shè)計(jì)達(dá)人,純,可以實(shí)現(xiàn)當(dāng)正文內(nèi)容很少時(shí),底部位于窗口最下面。有效解決圖片使用單位邊角缺失的問題前端掘金起因在移動端使用布局時(shí)圖片也需要用單位。 CSS 絕對底部 - 前端 - 掘金來自國外的設(shè)計(jì)達(dá)人,純CSS,可以實(shí)現(xiàn): 當(dāng)正文內(nèi)容很少時(shí),底部位于窗口最下面。當(dāng)改變窗口高度時(shí),不會出現(xiàn)重疊問題。甚至,創(chuàng)造該CSS的人還專門成立一個(gè)網(wǎng)站介紹這個(gè)CSS底部布局方案...
摘要:但是部分瀏覽器存在兼容性的問題。核心代碼寬高不固定水平垂直居中演示使用布局垂直水平居中核心代碼使用布局垂直水平居中演示使用布局垂直水平居中核心代碼使用布局垂直水平居中演示 CSS居中完全指南——構(gòu)建CSS居中決策樹 showImg(https://segmentfault.com/img/bV8tDq); 本文總結(jié)CSS居中,包括水平居中和垂直居中.本文相當(dāng)于CSS決策樹,下次再遇到...
閱讀 3828·2021-10-08 10:12
閱讀 4325·2021-09-02 15:40
閱讀 935·2021-09-01 11:09
閱讀 1605·2021-08-31 09:38
閱讀 2543·2019-08-30 13:54
閱讀 2249·2019-08-30 12:54
閱讀 1242·2019-08-30 11:18
閱讀 1398·2019-08-29 14:06