許多方法可以將HTML元素與CSS對齊,但是一起使用或單獨使用它們并不是那么容易。開發人員所面臨的困難之一就是試圖將元素集中在頁面中間。
因此,在本文中,我將展示一些最常用的方法,即通過使用不同的CSS屬性在水平和垂直方向上居中圖像。
讓我們開始使用3個不同的CSS屬性將圖像水平居中。
使圖像水平居中的第一種方法是使用text-align屬性。但是,僅當圖像位于塊級容器(例如<div>)內時,此方法才有效:
使圖像居中的另一種方法是使用margin:auto屬性(用于左邊距和右邊距)。但是,單獨使用margin:Auto將不適用于圖像。如果需要使用margin:auto,則還必須使用2個其他屬性。
margin-auto屬性對內聯級別的元素沒有任何影響。由于<img>標簽是一個內聯元素,因此我們需要先將其轉換為塊級元素:
其次,我們還需要定義寬度。因此,左右邊緣可以占用其余的空白空間并自動對齊,可以這樣解決問題(除非我們給出100%的寬度):
將圖像水平居中的第三種方法是使用display:flex。同樣,我們對容器使用text-align屬性,它也會使用display:flex。但是,僅使用display:flex是不夠的。容器還必須具有一個稱為justify-content的附加屬性。
justify-content屬性與display:flex一起使用,我們可以使用它水平放置圖像的中心。最后,圖像的寬度必須小于容器的寬度,否則,它會占用100%的空間,然后我們就無法對其進行集中化。
1、Display: Flex
對于垂直對齊,使用display:flex確實很有幫助。考慮到我們的容器的高度為800px,但圖像的高度僅為500px:
現在,在這種情況下,向容器中添加一行代碼(align-items:center)就可以了:
如果將align-items屬性與display:flex一起使用,就會將元素垂直放置。
2、位置:絕對和變換屬性
垂直對齊的另一種方法是一起使用position和transform屬性。這個有點復雜,所以讓我們一步一步地做。
步驟1:定義絕對位置
首先,我們將圖像的定位行為從靜態更改為絕對:
同樣,它應該位于相對放置的容器內,因此我們添加一個位置:相對于其容器的div。
步驟2:定義頂部和左側屬性
其次,我們定義圖像的頂部和左側屬性,并設置為50%。這會將圖像的起點(左上角)移到容器的中心:
步驟3:定義變換屬性
在第二步的時候已經將圖像的一部分移出容器。因此,我們需要將其取回內部。在圖像上定義轉換屬性,并在其X和Y軸上添加負50%可以達到目的:
還可以使用其他方法進行水平和垂直居中,我這里只嘗試了最常用的方法。希望這篇文章可以幫助你了解如何在頁面中心對齊圖像。
內容首發于工粽號:程序員大澈,每日分享一段優質代碼片段,歡迎關注和投稿!
大家好,我是大澈!
本文約 500+ 字,整篇閱讀約需 1 分鐘。
今天分享一段優質 CSS 代碼片段,可以輕松實現元素垂直水平居中對齊。
老規矩,先閱讀代碼片段并思考,再看代碼解析再思考,最后評論區留下你的見解!
div {
display: grid;
place-content: center;
}
分享原因
這段代碼展示了如何使用 CSS Grid 布局以及 place-content 屬性來居中對齊元素。
CSS Grid 是一種強大的布局工具,提供了簡單且靈活的方式來實現復雜的布局,而place-content 屬性進一步簡化了居中對齊的實現。
相較于 Flex 布局,Grid 布局僅僅只需一行代碼即可搞定居中對齊!
代碼解析
1. display: grid;
設置元素為網格容器。
網格容器可以通過定義網格行和列來布置其子元素。
2. place-content: center;
place-content 是 align-content 和 justify-content 的組合屬性。
center 值表示內容在容器的中央對齊。
3. 兼容性
place-content: center; 的兼容性在現代瀏覽器中較好,某一些舊版瀏覽器的不兼容完全可以忽略了。
以下是一些常見瀏覽器的具體支持情況:
技術等級】初級
【承接文章】《CSS文本屬性,讓你的段落更加美觀,前端之路更進一步》
本文重點講解CSS技術中文本樣式的text-align屬性以及”塊級元素”和“內聯元素”的使用。本文屬于前端開發的初級教程,適合于剛剛開始接觸CSS技術的學習者。
一、設置對齊方式:
CSS技術利用text-align屬性來設置對齊方式
首先,在使用該屬性的同時,要明確這是誰相對于誰的對齊方式。讓我們一起來看下列代碼。
<div>
<p style=”text-align:center”></p>
</div>
上述代碼中使用了text-align屬性的標記對是<p></p>標記對。那么,是誰相對于誰垂直居中了呢?下面列舉了兩種可能的情況:
<p>標記對相對于它的容器<div>標記對垂直居中
<p>標記對的內容(即“”文字)相對于<p>標記對本身垂直居中。
請大家仔細想一想,應該是上述那種情況?
正確答案是第二種。也就是說:使用了text-align屬性的標記對,是這個標記對的內容在該標記對內部實現了對齊效果,而不是這個標記對在其容器內部實現了對齊效果。
其次,要想實現文本相對于自身的對齊方式,那么自身的標記對必須具備一定的寬度和高度。以上述代碼來說,<p>標記對默認情況下的寬度為整個頁面的寬度,也就是說這個標記對自身是有一定的寬度的,同時內部的文本數量又比較少,所以text-align在使用的過程中是可以看到效果的。
綜合上述的內容,可以說text-align屬性在使用時要注意以下兩點:
對齊效果是自身內部的文本內容相對于自身這個容器的對齊方式。
標記對自身必須具備一定的寬度。
text-align屬性可以有多種取值:
left,左對齊。內部文本在自身容器中左對齊
center,居中對齊。內部文本在自身容器中居中對齊。
right,右對齊。內部文本在自身容器中右對齊。
justify,兩端對齊。內部文本在自身容器中兩端對齊,即整個段落的左側是整齊的,右側也是整齊的。這種對齊方式和左對齊是有區別的。左對齊可以明顯的觀察出段落的右側是不整齊的。
左對齊和兩端對齊的區別
從上圖中可以看出,兩端的最右側,也就是深色直線比對的位置。采用的左對齊的段落這條線附近的段落文本是沒有對齊的;而采用了兩端對齊的這條線附近的段落文本是對齊的。
二、塊級元素與內聯元素
我們將HTML的各個標記,根據在頁面中展示內容的外觀,分為兩類:一類叫做“塊級元素”,另一類叫做“內聯元素”。
典型的“塊級元素”是<div></div>標記對。
典型的“內聯元素”是<span></span>標記對。
這兩個標記對本身沒有任何外觀效果,內部可以盛放任何HTML標記對,是網頁布局時常用的兩個容器。 默認情況下,<div></div>標記的寬度為頁面的整寬,即一個<div></div>標記占一行,被稱為“塊級元素”。<span></span>標記的寬度為內部內容的寬度,多個<span></span>標記的內容可以在一行內顯示,被稱為“行內元素”或“內聯元素”。
常用的塊級元素標記還包括:<p></p> <ul></ul> <ol></ol> <li></li> <table></table> <form></form>
常用的內聯元素標記還包括:<a></a> <img /> <input /> <select></select> <textarea></textarea>
三、塊級元素與內聯元素的區別:
塊級元素和內聯元素的的區別可以從下圖中看到。
“塊級元素”和“內聯元素”的區別
四、學習兩個新的CSS屬性
我們這里學習兩個簡單的CSS屬性,分別為width和height屬性。
width,為塊級元素設置寬度。
height,為塊級元素設置高度。
這兩個屬性的取值必須是帶有單位的數值。
例:div{width:200px; height:30px;}
上述代碼將頁面中所有的<div></div>標記對都設置為了寬度200像素、高度30像素的矩形。也就是說這樣一來,<div></div>標記對再也不占有整個頁面的整寬了,但是仍然為獨占一行的情況。
這兩個屬性是用來設置元素的寬度和高度的,但是只能適用于塊級元素。這也是內聯元素沒有寬度的一個重要原因:因為利用width屬性為內聯元素設置寬度是沒有效果的。
下一篇文章中,小海老師會為大家從細節上深入剖析line-height屬性以及該屬性的用法。對于渴望在前端開發道路上前進的你一定不能錯過!
如果大家希望得到更加全面的關于HTML和CSS技術講解的內容,可以私信我,我會免費將小海老師自己編寫的HTML和CSS的PDF教材發給你,幫助你在前端開發的道路上闊步前行。
在頭條上也已經寫了有十篇文章了。這些文章都是從前端開發的基礎開始一步一步講起的。我非常希望能有更多的前端開發初學者通過我寫的文章,逐步學到一定的知識,甚至慢慢有了入門的感覺。這些文章都是我這幾年教學過程中的經驗,每寫一篇時我都盡量把握好措辭,用簡單易懂的語言描述,同時精心設計版面,讓版面更加豐富,激發閱讀興趣。所以,每一篇文章可能篇幅不長,但是都要耗費小海老師很久的時間。
希望收藏了我寫的文章的你同時可以關注一下“小海前端”,因為這些文章都是連載的,并且是經過我系統的歸納過的。關注“小海前端”,我會繼續為大家奉上更加深入的前端開發文章,也希望更多的初學者跟著學下去,我們共同將前端開發的路努力堅持的走下去。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。