摘要:此時(shí)檢查元素即可即可實(shí)現(xiàn)內(nèi)層的實(shí)現(xiàn)了居中這種方式是最為我們熟知的,其缺點(diǎn)是需要設(shè)置子元素的寬度。交叉軸居中當(dāng)設(shè)置了屬性時(shí),主軸的方向會(huì)改變。垂直居中實(shí)現(xiàn)方案用的屬性,以及定位,與上面的水平居中類似,只是改為即可。
水平居中實(shí)現(xiàn)方案 確定寬度的元素水平居中
1.我們可以通過給該元素的父級(jí)設(shè)置margin: 0 auto的方式來實(shí)現(xiàn)。
HTML:
center
CSS:
.child { width: 200px; margin: 0 auto; }
此時(shí)檢查元素即可即可實(shí)現(xiàn)內(nèi)層的div實(shí)現(xiàn)了居中,這種方式是最為我們熟知的,其缺點(diǎn)是需要設(shè)置子元素的寬度。
2.通過position定位
HTML:
- center
CSS:
div { float: left; width: 100%; position: relative; } ul { position: absolute; left: 50%; width: 200px; margin-left: -100px; }不確定寬度的元素居中
1.給子元素設(shè)置display: inline-black,父元素設(shè)置text-align: center。
HTML:
center
CSS:
div { text-align: center; } p { display: inline-block; }
2.當(dāng)元素被設(shè)置float的時(shí)候,它的寬度就會(huì)被其內(nèi)容撐開,然后通過positon定位來實(shí)現(xiàn)橫向居中。
HTML:
- center
CSS:
div { float: left; width: 100%; position: relative; } ul { position: relative; left: 50%; float: left; } li { float: left; position: relative; right: 50%; display: block; }
3.flex布局, justify-content:center;主軸居中。align-items:center;交叉軸居中;當(dāng)設(shè)置了flex-direction屬性時(shí),主軸的方向會(huì)改變。
4.css width: fit-content屬性。
5.用css3的transform
HTML:
center
CSS:
div { position: relative; } .test { position: relative; left: 50%; float: left; transform: translateX(-50%); }
總結(jié)一下起來也就是兩種方式,其中有比較直接的方式比如,margin: 0 auto,雖然這種方式的兼容性很好,沒有副作用,但是這種方式最主要的缺陷是只適用于子元素寬度固定的情況?;蛘哂胏ss3的固有屬性flex布局或者 width: fix-content這種方式實(shí)現(xiàn)起來簡(jiǎn)單直接,但在處理一些舊版本的瀏覽器時(shí),存在很嚴(yán)重的兼容性問題。還有就是間接的實(shí)現(xiàn)方式通過position定位,具體思想主要是子元素先移動(dòng)到父元素二分之一的位置,relative,或者absoulte都可以實(shí)現(xiàn),然后在將子元素向左移動(dòng)自身二分之一的位置,這種方式有廣泛的適用性,但是思路可能比較復(fù)雜。
垂直居中實(shí)現(xiàn)方案1.用css3的transform屬性,以及postion定位,與上面的水平居中類似,只是改為top:50%,translateY(-50%)即可。
2.設(shè)置父元素display: table;子元素dispaly: table-cell,vertical-align: middle;
3.絕對(duì)定位
HTML:
nnnnnnn
CSS:
.parent { position: relative; height: 400px; } .child { margin: auto; height: 200px; position: absolute; top:0; bottom: 0; }
4.單行文本時(shí)可以設(shè)置height與line-h(huán)eight相同實(shí)現(xiàn)文字居中。
5.外邊距margin取負(fù)數(shù),大小為width/height的一半,再加上top: 50%; left: 50%;
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/115324.html
摘要:高度模型淺識(shí)為的簡(jiǎn)寫,簡(jiǎn)稱為塊級(jí)格式化上下文,為瀏覽器渲染某一區(qū)域的機(jī)制,中只有和中還增加了和。并非所有的布局都會(huì)在開發(fā)中使用,但是其中也會(huì)涉及一些知識(shí)點(diǎn)。然而在不同的純制作各種圖形純制作各種圖形多圖預(yù)警 一勞永逸的搞定 flex 布局 尋根溯源話布局 一切都始于這樣一個(gè)問題:怎樣通過 CSS 簡(jiǎn)單而優(yōu)雅的實(shí)現(xiàn)水平、垂直同時(shí)居中。記得剛開始學(xué)習(xí) CSS 的時(shí)候,看到 float 屬性不...
摘要:前言一直有個(gè)想法要把各種居中的方法總結(jié)一下,但還是一直沒有時(shí)間去整理。最近剛好在做樣式重構(gòu)的項(xiàng)目,順便把一下自己有用過的或積累的居中方法給總結(jié)一下。又必須有個(gè)父級(jí)對(duì)其進(jìn)行設(shè)置居中。 前言 一直有個(gè)想法要把各種居中的方法總結(jié)一下,但還是一直沒有時(shí)間去整理。最近剛好在做樣式重構(gòu)的項(xiàng)目,順便把一下自己有用過的或積累的居中方法給總結(jié)一下。 水平居中 行內(nèi)元素水平居中 行內(nèi)元素的居中比較簡(jiǎn)單,直...
摘要:為了更好的加深對(duì)居中的理解,搜集和閱讀相關(guān)資料,發(fā)現(xiàn)不錯(cuò)的文章將其整理出來。 在學(xué)習(xí)前端的過程中,發(fā)現(xiàn)元素和文本的水平居中和垂直居中,是經(jīng)常會(huì)出現(xiàn)的問題,在實(shí)際工作中也會(huì)經(jīng)常碰到。居中的技巧有很多,但在編寫代碼的過程中,發(fā)現(xiàn)有時(shí)候技巧管用,有時(shí)候不管用,于是就將每個(gè)知道的方案都試一遍,找到合適的。這種情況究其原因是對(duì)居中的認(rèn)識(shí)不夠深入,只是停留在實(shí)現(xiàn)需求的水平上。為了更好的加深對(duì)居中的...
摘要:垂直居中相關(guān)知識(shí)總結(jié)前言工作中用到了很多關(guān)于垂直居中相關(guān)的知識(shí)之前,在上提問了個(gè)問題關(guān)于垂直居中,大家有沒有什么比較好的建議。 垂直居中相關(guān)知識(shí)總結(jié) 前言 工作中用到了很多關(guān)于垂直居中相關(guān)的知識(shí)之前,在SF上提問了個(gè)問題CSS關(guān)于垂直居中,大家有沒有什么比較好的建議。非常感謝各位前輩對(duì)我的幫助,前輩們給的答案都非常多也各式各樣,我覺得有必要把大家的回答總結(jié)一下。 方法總結(jié) 一、絕對(duì)定...
閱讀 3060·2021-11-23 09:51
閱讀 3325·2021-11-12 10:36
閱讀 3330·2021-09-27 13:37
閱讀 3320·2021-08-17 10:15
閱讀 2708·2019-08-30 15:55
閱讀 2854·2019-08-30 13:07
閱讀 871·2019-08-29 16:32
閱讀 2716·2019-08-26 12:00