整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          前端必看干貨,有了它,div容器水平和垂直居中竟然這么簡單

          實際工作中,經(jīng)常會遇到容器居中問題,而CSS容器水平和垂直居中的方法,網(wǎng)絡(luò)上已經(jīng)有很多相關(guān)文章,在這里,我也對工作中用到的一些居中方法進行了總結(jié),并加入了一些自己的觀點,如有錯誤歡迎指正。

          假設(shè)有如下html和樣式,我們需要將inner容器居中:

          一、絕對定位:首先讓outer相對定位relative,其次讓inner絕對定位absolute,同時left和top都是50%,此時inner的左上角在outer的正中間,所以,只要讓它margin-left和margin-top都是負的自身高度的一半即可:

          效果如下:

          此外,這種寫法的:

          margin-left和margin-top也可以換成transform:translate(-100px,-100px)。

          注:這里的inner是必須要有寬高

          二、絕對定位2:首先讓outer相對定位relative,其次讓inner絕對定位absolute,四個方向的距離都為0,再加上margin:auto即可:

          效果如下:

          注:這里的inner是必須要有寬高的,因為四個方向都為0,一旦不寫寬度,inner就會“觸及底線”。

          三、模擬單元格table-cell:因為表格單元格的vertical-align:middle,可以輕松讓里面的內(nèi)容垂直居中,這個方法就是利用這個特性來實現(xiàn)垂直居中的:

          注:1、outer由于變成了表格,不再像普通的塊容器寬度默認一整行,所以要加上寬度。

          2、這個方法既適用于固定高度的容器,也適用于不固定高度的容器。

          四、CSS3的flex:outer要變成flex容器,并且垂直居中用align-items: center,水平居中用:justify-content: center

          注:此方法非常好用,當(dāng)然不考慮兼容性。而且,inner無論是否有寬高都適用。

          五、CSS3的flex配合margin:此方法可以被視為上面的升級版,outer要變成flex容器,inner邊距自動即可

          注:此方法非常好用,當(dāng)然不考慮兼容性。而且,inner無論是否有寬高都適用。

          好東西就要總結(jié)起來,好東西就要收藏起來,隨著瀏覽器兼容性越來越好,上面的很多方法已經(jīng)可以放心使用了。當(dāng)然,如果各位有更好的方法,歡迎在下方評論留言哦!


          許多方法可以將HTML元素與CSS對齊,但是一起使用或單獨使用它們并不是那么容易。開發(fā)人員所面臨的困難之一就是試圖將元素集中在頁面中間。

          因此,在本文中,我將展示一些最常用的方法,即通過使用不同的CSS屬性在水平和垂直方向上居中圖像。

          水平居中

          讓我們開始使用3個不同的CSS屬性將圖像水平居中。

          文字對齊

          使圖像水平居中的第一種方法是使用text-align屬性。但是,僅當(dāng)圖像位于塊級容器(例如<div>)內(nèi)時,此方法才有效:

          Margin: Auto

          使圖像居中的另一種方法是使用margin:auto屬性(用于左邊距和右邊距)。但是,單獨使用margin:Auto將不適用于圖像。如果需要使用margin:auto,則還必須使用2個其他屬性。

          margin-auto屬性對內(nèi)聯(lián)級別的元素沒有任何影響。由于<img>標(biāo)簽是一個內(nèi)聯(lián)元素,因此我們需要先將其轉(zhuǎn)換為塊級元素:

          其次,我們還需要定義寬度。因此,左右邊緣可以占用其余的空白空間并自動對齊,可以這樣解決問題(除非我們給出100%的寬度):

          Display: Flex

          將圖像水平居中的第三種方法是使用display:flex。同樣,我們對容器使用text-align屬性,它也會使用display:flex。但是,僅使用display:flex是不夠的。容器還必須具有一個稱為justify-content的附加屬性。

          justify-content屬性與display:flex一起使用,我們可以使用它水平放置圖像的中心。最后,圖像的寬度必須小于容器的寬度,否則,它會占用100%的空間,然后我們就無法對其進行集中化。

          垂直居中放置圖像

          1、Display: Flex

          對于垂直對齊,使用display:flex確實很有幫助。考慮到我們的容器的高度為800px,但圖像的高度僅為500px:

          現(xiàn)在,在這種情況下,向容器中添加一行代碼(align-items:center)就可以了:

          如果將align-items屬性與display:flex一起使用,就會將元素垂直放置。

          2、位置:絕對和變換屬性

          垂直對齊的另一種方法是一起使用position和transform屬性。這個有點復(fù)雜,所以讓我們一步一步地做。

          步驟1:定義絕對位置

          首先,我們將圖像的定位行為從靜態(tài)更改為絕對:

          同樣,它應(yīng)該位于相對放置的容器內(nèi),因此我們添加一個位置:相對于其容器的div。

          步驟2:定義頂部和左側(cè)屬性

          其次,我們定義圖像的頂部和左側(cè)屬性,并設(shè)置為50%。這會將圖像的起點(左上角)移到容器的中心:

          步驟3:定義變換屬性

          在第二步的時候已經(jīng)將圖像的一部分移出容器。因此,我們需要將其取回內(nèi)部。在圖像上定義轉(zhuǎn)換屬性,并在其X和Y軸上添加負50%可以達到目的:

          還可以使用其他方法進行水平和垂直居中,我這里只嘗試了最常用的方法。希望這篇文章可以幫助你了解如何在頁面中心對齊圖像。

          CSS和HTML結(jié)合布局頁面的過程中,有一組被人們稱為“盒屬性”的CSS樣式,被廣泛的使用到。相信經(jīng)常布局寫頁面的朋友們對盒屬性一定不陌生。在CSS技術(shù)的發(fā)展過程中,盒屬性也有了許多次改進,今天小海老師就為大家講一講盒屬性中的CSS樣式如何使用。

          承接文章:通欄導(dǎo)航欄的制作,綜合使用CSS屬性,代碼不超過30

          技術(shù)等級:初級 | 適合前端開發(fā)的初學(xué)者閱讀學(xué)習(xí)。

          希望收藏了這篇文章的你同時也可以關(guān)注一下“小海前端”的頭條號,因為這些文章都是連載的,并且是經(jīng)過系統(tǒng)的歸納和總結(jié)的。塌下心來認真閱讀,你一定會學(xué)到對你有用的知識。

          盒屬性主要涉及到三類CSS屬性:

          • padding

          • margin

          • border

          一、CSS中的盒概念:

          CSS技術(shù)將HTML中所有的元素都認為是一個“盒子”,并把這個“盒子”分為了三個組成部分,這三個組成部分分別叫做“填充”、“邊界”、“邊框”。顧名思義,盒子的主要功能就是盛放東西,CSS的意思是將各個HTML標(biāo)記對看做了容器,而標(biāo)記對內(nèi)部存放的文本、圖片、列表、表格、表單等都被看做了容器所盛放的內(nèi)容。

          一個裝有地球的盒子

          CSS技術(shù)為盒子的三個組成部分下了明確的定義:

          1. 填充:指盒子邊框與盒子內(nèi)容之間的距離。

          2. 邊界:指盒子與盒子之間的距離。

          3. 邊框:指填充與邊界之間的部分。

          CSS的盒模型

          盒子的三個組成部分中,“填充”和“邊界”只提供了相關(guān)的距離屬性,而“邊框”提供了相關(guān)的距離屬性、顏色屬性和樣式屬性。

          二、調(diào)整盒子的填充距離:

          CSS技術(shù)利用padding系列屬性來調(diào)整盒子的填充距離。

          CSS技術(shù)利用padding系列屬性來調(diào)整盒子的填充距離

          padding屬性的取值為四個數(shù)值,按照“上、右、底、左”的順序排列書寫,之間用空格隔開。

          padding屬性的使用格式:

          padding:top right bottom left;

          padding屬性的取值:

          • 帶有單位的長度值。

          • auto

          • 百分比

          padding屬性還派生出下列四個子屬性,用于調(diào)整四個方向上單獨的填充距離:

          • padding-top,設(shè)置盒子頂部填充的距離。

          • padding-right,設(shè)置盒子右側(cè)填充的距離。

          • padding-bottom,設(shè)置盒子底部填充的距離。

          • padding-left,設(shè)置盒子左側(cè)填充的距離。

          注意:盒子的填充具備了數(shù)值后,為了保證盒子的大小不發(fā)生變化,必須修改盒子的寬度和高度。

          • 盒子的實際高度=盒子的期望高度-盒子的頂部填充距離-盒子的底部填充距離

          • 盒子的實際寬度=盒子的期望寬度-盒子的左側(cè)填充距離-盒子的右側(cè)填充距離

          例如:希望創(chuàng)建一個寬度為500,高度為300的盒子。同時頂部填充距離為10像素,左側(cè)填充距離為20像素,右側(cè)和底部填充均不設(shè)置,則padding屬性取值如下:

          padding:10px 0 0 20px;

          因此,計算盒子的實際寬高:

          1. 盒子的實際高度=300px-10px-0px=290px

          2. 盒子的實際寬度=500px-20px-0px=480px

          所以,該盒子的CSS代碼應(yīng)設(shè)置為如下所示:

          width:480px; height:290px;

          padding:10px 0 0 20px;

          當(dāng)然,有開發(fā)經(jīng)驗的人一定知道,CSS3技術(shù)提供了一個名為box-sizing的屬性,避免了這類填充相減的復(fù)雜操作。在后續(xù)的文章中,我會為大家全面介紹CSS3技術(shù)的使用。

          三、調(diào)整盒子的邊界距離:

          CSS技術(shù)利用margin系列屬性來調(diào)整盒子的邊界距離。

          CSS技術(shù)利用margin系列屬性來調(diào)整盒子的邊界距離

          margin屬性的取值為四個數(shù)值,按照“上、右、底、左”的順序排列書寫,之間用空格隔開。

          margin屬性的使用格式:

          margin:top right bottom left;

          margin屬性的取值:

          • 帶有單位的長度值(可以取負值)。

          • auto

          • 百分比

          margin屬性還派生出下列四個子屬性,用于調(diào)整四個方向上單獨的邊界距離:

          • margin-top,設(shè)置盒子頂部邊界的距離。

          • margin-right,設(shè)置盒子右側(cè)邊界的距離。

          • margin-bottom,設(shè)置盒子底部邊界的距離。

          • margin-left,設(shè)置盒子左側(cè)邊界的距離。

          四、調(diào)整盒子的邊框

          CSS技術(shù)利用border系列屬性來調(diào)整盒子的邊框。

          CSS技術(shù)利用border系列屬性來調(diào)整盒子的邊框

          1、調(diào)整盒子邊框的粗細:

          • border-top-width,設(shè)置盒子頂部邊框的粗細。

          • border-right-width,設(shè)置盒子右側(cè)邊框的粗細。

          • border-bottom-width,設(shè)置盒子底部邊框的粗細。

          • border-left-width,設(shè)置盒子左側(cè)邊框的粗細。

          • border-width,設(shè)置盒子四個方向邊框的粗細。

          border-width屬性的使用格式:

          border-width:top right bottom left;

          2、調(diào)整盒子邊框的顏色:

          • border-top-color,設(shè)置盒子頂部邊框的顏色。

          • border-right-color,設(shè)置盒子右側(cè)邊框的顏色。

          • border-bottom-color,設(shè)置盒子底部邊框的顏色。

          • border-left-color,設(shè)置盒子左側(cè)邊框的顏色。

          • border-color,設(shè)置盒子四個方向邊框的顏色。

          border-color屬性的使用格式:

          border-color:top right bottom left;

          3、調(diào)整盒子邊框的樣式:

          • border-top-style,設(shè)置盒子頂部邊框的樣式。

          • border-right-style,設(shè)置盒子右側(cè)邊框的樣式。

          • border-bottom-style,設(shè)置盒子底部邊框的樣式。

          • border-left-style,設(shè)置盒子左側(cè)邊框的樣式。

          • border-style,設(shè)置盒子四個方向邊框的樣式。

          border-style屬性的使用格式:

          border-style:top right bottom left;

          border-style屬性有如下所示的取值:

          • none,盒子無邊框。

          • solid,盒子邊框為實線。

          • dashed,盒子邊框為虛線。

          • dotted,盒子邊框為點邊框。

          • double,盒子邊框為雙實線邊框。

          • groove,盒子邊框為溝槽狀。

          • ridge,盒子邊框為脊?fàn)睢?/p>

          • inset,盒子邊框為凹陷狀。

          • outset,盒子邊框為凸出狀。

          4、設(shè)置盒子一個位置的邊框效果:

          CSS還提供了可以設(shè)置盒子單個位置邊框效果的屬性。

          • border-top,設(shè)置盒子頂部邊框的效果。

          • border-right,設(shè)置盒子右側(cè)邊框的效果。

          • border-bottom,設(shè)置盒子底部邊框的效果。

          • border-left,設(shè)置盒子左側(cè)邊框的效果。

          使用格式:

          border-top:style width color;

          例如:border-top:solid 1px #ff0000;

          5、設(shè)置盒子所有邊框具有相同的效果:

          CSS技術(shù)還提供了可以調(diào)整盒子所有邊框都具有相同外觀的屬性。

          • border,設(shè)置盒子四個方向所具備邊框外觀效果。

          使用格式:

          border:style width color;

          例如:border:solid 1px #ff0000;

          小海教材

          如果大家希望得到更加全面的關(guān)于HTML和CSS技術(shù)講解的內(nèi)容,可以私信我,我會免費將小海老師自己編寫的HTML和CSS的PDF教材發(fā)給你,幫助你在前端開發(fā)的道路上闊步前行。

          小海聲明

          在頭條上發(fā)表的這些文章都是從前端開發(fā)的基礎(chǔ)開始一步一步講起的。我非常希望能有更多的前端開發(fā)初學(xué)者通過我寫的文章,逐步學(xué)到一定的知識,甚至慢慢有了入門的感覺。這些文章都是我這幾年教學(xué)過程中的經(jīng)驗,每寫一篇時我都盡量把握好措辭,用簡單易懂的語言描述,同時精心設(shè)計版面,讓版面更加豐富,激發(fā)閱讀興趣。所以,每一篇文章可能篇幅不長,但是都要耗費小海老師很久的時間。

          希望收藏了這篇文章的你同時也可以關(guān)注一下“小海前端”的頭條號,因為這些文章都是連載的,并且是經(jīng)過系統(tǒng)的歸納和總結(jié)的。塌下心來認真閱讀,你一定會學(xué)到對你有用的知識。

          關(guān)注“小海前端”,我會繼續(xù)為大家奉上更加深入的前端開發(fā)文章,也希望更多的初學(xué)者跟著學(xué)下去,我們共同將前端開發(fā)的路努力堅持的走下去。

          文章預(yù)告

          由于篇幅問題,本篇文章只為大家介紹了盒屬性都有哪些,以及基本的使用格式。在下一篇文章中,小海老師會為大家講解盒屬性的使用技巧已經(jīng)一些常見的應(yīng)用領(lǐng)域。希望對大家的工作能夠提供幫助。


          主站蜘蛛池模板: 色狠狠AV一区二区三区| 无码精品人妻一区二区三区AV| 亚洲熟妇av一区二区三区漫画 | 亚洲一区二区三区久久久久| 日本人的色道www免费一区| 亚洲国产AV一区二区三区四区 | 日本欧洲视频一区| 麻豆一区二区免费播放网站| 成人精品一区二区三区电影| 国产吧一区在线视频| 亚洲爽爽一区二区三区| 国内国外日产一区二区| 久久久久国产一区二区| 中文字幕在线一区二区在线 | 久久久精品人妻一区亚美研究所| 久久久久久人妻一区精品| 亚洲av无码一区二区乱子伦as| 3D动漫精品啪啪一区二区下载| 亚洲av无码一区二区三区在线播放| 精品国产区一区二区三区在线观看| 一区二区三区免费视频播放器| 久久亚洲AV午夜福利精品一区| 精品国产一区二区三区www| 精品一区二区三区四区在线| 亚洲一区二区三区免费观看| 日韩精品无码人妻一区二区三区 | 亚洲av无码一区二区三区人妖| 亚洲美女高清一区二区三区| 精品无码成人片一区二区98 | 日本一区二区在线| 国产福利一区二区| 青青青国产精品一区二区| 在线观看国产一区二区三区| 国产精品va无码一区二区| 国产在线观看91精品一区| 久久er99热精品一区二区| 好吊视频一区二区三区| 亚洲av综合av一区二区三区| 亚洲av无码一区二区三区乱子伦| 一区二区高清视频在线观看| 日韩精品人妻一区二区三区四区|