摘要:一垂直居中適用于單行文本居中多對象的垂直居中技巧立馬來看實際完成的精美相冊效果效果吧別忘了拖拉一下窗口看看效果喔負值立馬來看實際完成的精美相冊效果效果吧別忘了拖拉一下窗口看看效果喔立馬來看實際完成的精美相冊效
一、css垂直居中
1.line-height(適用于單行文本居中)
eg: html:
123
-css: .wordp{width:100px;line-height:50px;background:yellow;color:#fff}
2.:befor+inline-block(多對象的垂直居中技巧)
eg:html
適用情景:多行文字的垂直居中技巧
在正常的狀況下,align-content 僅能對次軸多行flex item做居中,但是當我今天子層元素不確定有多少個時,且有時可能會有單個的情況出現時,此技巧就能用到了(當然你也能有其他解法),既然是多行子元素才能用,那我們就為單個子組件多加兩個兄弟吧,使用:before以及:after 來讓子元素增加到多個,這樣就能使用flex的align-content屬性來居中
11.Flex + align-content
h2{
text-align: center;
}
.box{
width: 500px;
height: 250px;
border: 1px solid #f00;
margin: auto;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-content: center;
}
.content{
width: 400px;
background: #ccc;
}
.box11:before,
.box11:after{
content: ;
display: block;
width:100%;
}
適用情景:多行文字的垂直居中技巧
CSS Grid最令人驚訝的就是這個template的功能了,簡直就是把塊元素當畫布在使用,我們僅需要把模板設置成三列,就能搞定垂直居中了
12.Grid + template
h2{
text-align: center;
}
.box{
width: 500px;
height: 250px;
border: 1px solid #f00;
margin: auto;
display: grid;
grid-template-rows: 1fr auto 1fr;
grid-template-columns: 1fr auto 1fr;
grid-template-areas:
. . .
. amos .
. . .;
}
.content{
width: 400px;
background: #ccc;
grid-area: amos;
}
適用情景:多行文字的垂直居中技巧
align-items不僅是Flex可用,連CSS Grid也擁有此屬性可使用,但在Flex中align-items是針對次軸cross axis作對齊,而在CSS Grid中則是針對Y軸做對齊,你可以把它想象成是表格中儲存單元格的vertical-align屬性看待,就可以很好理解了
13.Grid + align-items
h2{
text-align: center;
}
.box{
width: 500px;
height: 250px;
border: 1px solid #f00;
margin: auto;
display: grid;
justify-content: center;
align-items: center;
}
.content{
width: 400px;
background: #ccc;
}
適用情景:杜航文字的垂直居中技巧
CSS Grid的align-content跟Flex的align-content有點差異,CSS Grid對于空間的解釋會跟Flex有一些些的落差,所以導致align-content在Flex中僅能針對多行元素起作用,但在Grid中就沒這個問題,所以我們可以很開心的使用align-content來對子元素做垂直居中,絲毫不費力氣
14.Grid + align-content
h2{
text-align: center;
}
.box{
width: 500px;
height: 250px;
border: 1px solid #f00;
margin: auto;
display: grid;
justify-content: center;
align-content: center;
}
.content{
width: 400px;
background: #ccc;
}
適用情景:多行文字的垂直居中技巧
align-self 應該大家都不陌生,基本上就是對grid Y軸的個別對齊方式,只要對單一子層元素設置為align-self:center就能達成垂直居中的目的了
15.Grid + align-self
h2{
text-align: center;
}
.box{
width: 500px;
height: 250px;
border: 1px solid #f00;
margin: auto;
display: grid;
justify-content: center;
}
.content{
width: 400px;
background: #ccc;
align-self: center;
}
適用情景:多行文字的垂直居中技巧
place-items這屬性不知道有多少人用過,此屬性是align-items與justify-items的縮寫,簡單的說就是水平與垂直的對齊方式,想當然的,設定center就能居中
16.Grid + place-items
h2{
text-align: center;
}
.box{
width: 500px;
height: 250px;
border: 1px solid #f00;
margin: auto;
display: grid;
height: 150px;
margin: 0 auto;
place-items: center;
}
.content{
width: 400px;
background: #ccc;
}
適用情景:多行文字的垂直居中技巧
place-content這屬性有多少人用過,此屬性是align-content與justify-content的縮寫,簡單的說就是水平與垂直的對齊方式,想當然的,設置center就能居中了
17.Grid + place-content
h2{
text-align: center;
}
.box{
width: 500px;
height: 250px;
border: 1px solid #f00;
margin: auto;
display: grid;
height: 150px;
margin: 0 auto;
place-content: center;
}
.content{
width: 400px;
background: #ccc;
}
適用情景:多行文字的垂直居中技巧
繼續用Grid來居中,由于Grid元素對空間解讀的特殊性,我們只要在父層元素設定display:grid,接著在需要垂直居中的元素上設置margin:auto即可自動居中。怎么這描述似曾相識。
18.Grid + margin
h2{
text-align: center;
}
.box{
width: 500px;
height: 250px;
border: 1px solid #f00;
margin: auto;
display: grid;
}
.content{
width: 400px;
background: #ccc;
margin:auto;
}
適用情景:多行文字的垂直居中技巧
這一招我想有點年紀的開發者應該都有看過,當然像我這么嫩的開發者當然是第一次看到啦,這一招的原理在于使用 CSS display屬性將div設置成表格的單元格,這樣就能利用支持存儲單元格對齊的vertical-align屬性來將信息垂直居中
19.display: table-cell
h2{
text-align: center;
}
.box{
width: 500px;
height: 250px;
border: 1px solid #f00;
margin: auto;
text-align: center;
display: table-cell;
vertical-align: middle;
}
.content{
width: 400px;
background: #ccc;
margin: auto;
}
適用情景:多行文字的垂直居中技巧
Cale是計算機英文單詞calculator的縮寫,這個由微軟提出的css 方法,真的是網頁開發者的一個福音。我們竟然可以在網頁中直接做計算,這真是太猛了,從此我們再也不用在那邊絞盡腦汁的數學計算了,或是想辦法用js來動態計算,我們可以很輕松的利用calc()這個方法,來將百分比及時且動態的計算出實際要的是什么高度,真可謂是劃時代的一個方法啊,但這個方法需要注意的是大量使用的話,網頁性能會是比較差的,所以請謹慎使用。
20.calc
h2{
text-align: center;
}
.box{
width: 500px;
height: 250px;
border: 1px solid #f00;
margin: auto;
}
.content{
width: 400px;
background: #ccc;
position: relative;
top:calc((100% - 70px) / 2);
margin:auto;
height: 70px;
}
適用情景:多行文字的垂直居中技巧
這個技巧是利用了top:50%的招式,讓你的元素上方能產生固定百分比的距離,接著讓要居中的元素本身使用tanslateY的百分比來達成垂直居中的需求,translate是一個很棒的屬性,由于translate的百分比單位是利用元素自身的尺寸作為100%,這樣讓我們要利用元素自身寬高做事變得方便很多。
21.relative + translateY(-50%)
h2{
text-align: center;
}
.box{
width: 500px;
height: 250px;
border: 1px solid #f00;
margin: auto;
}
.content{
width: 400px;
background: #ccc;
position: relative;
top: 50%;
transform: translateY(-50%);
margin: auto;
}
適用情景:多行文字的垂直居中技巧
什么!這也算垂直居中技巧,連我奶奶都知道這方式吧
對的,這的確也算是一種垂直居中的方式,不可諱言的這方式真的是簡單過頭了,以至于有些開發者認為這種方式都不能算是一種垂直居中的技巧,但同樣的你無法反駁的是,我的數據的確垂直居中啦,好啦,就當我硬凹吧,你說的對,好吧
22.padding
h2{
text-align: center;
}
.box{
width: 500px;
border: 1px solid #f00;
margin: auto;
height: auto;
padding: 50px 0;
}
.content{
width: 400px;
background: #ccc;
margin: auto;
}
適用情景:多行文字的垂直劇種技巧
這個方式應該是比較少見到的有人使用的了,這個想法是被老友Paul所激發的,write-mode這個css屬性的功能基本上跟垂直居中是八竿子打不著,它的用途是改變文字書寫的方向從橫變豎,且支持度從很早期的IE5就有支持了,但當時Amos很少使用,一來是網頁多是橫書較多,另外當時除了IE瀏覽器意外,其他瀏覽器的支持度都不是很好,也就很少使用了。
使用write-mode將一整個文字容器變成直書,接著將此容器利用text-align:center來達到垂直居中的目的,白話一點的解說就是,你把原本橫排的文字變成豎排,所以原本橫排用到的水平對齊方式,就變成了控制直排的中間了,原理就是這么簡單。但要特別注意的是瀏覽器對此語法的支持度來說,需要拆開寫法才行,不然某些瀏覽器的語法不同,可能會讓你的網頁在某些瀏覽器上看起來無效,這會是最需要注意到的
23.writing-mode
立馬來看Amos實際完成的
h2{
text-align: center;
}
.box{
width: 500px;
height: 250px;
border: 1px solid #f00;
margin: auto;
writing-mode: tb-lr; /* for ie11 */
writing-mode: vertical-lr;
text-align: center;
margin:0 auto;
}
.content{
width: 400px;
background: #ccc;
display: inline-block; /* for ie & edge */
width: 100%;
writing-mode: lr-tb;
margin: auto;
text-align: left;
}
.box .txt{
width: 80%;
margin: auto;
}
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/1841.html
摘要:定寬塊狀元素滿足定寬和塊狀兩個條件的元素是可以通過設置左右值為來實現居中的。設置方法改變塊級元素的為類型設置為行內元素顯示,然后使用來實現居中效果。 做前端這一年多來,其實一直都是偏向于js前后端,css什么的總是抱著夠用就好的心態,從來沒有系統的學習或總結過,結果現在的水平也一直停留在夠用的階段。感覺作為一名合格的前端工程師,不能讓css成為自己的短板,于是簡單的總結一下,高手繞路。...
摘要:關于背景圖片的那些小技巧背景圖片太大沒辦法居中顯示怎么辦想完整顯示圖片如何按比例縮放想要在頁面上顯示兩個空格,應該怎么寫代碼在代碼里寫才行。 CSS簡介 想要制作出好看又高大上的網頁,除了編寫好HTML文件外,CSS的編寫也必不可少。CSS的英文全稱是Cascading Style Sheets,即層疊樣式表。CSS不僅可以靜態地修飾網頁,還可以配合各種腳本語言動態地對網頁各元素進行格...
摘要:因為網頁中可能存在中英文,中英文的字體樣式不同。要首先寫英文字體,在寫中文字體。上下移動目前可以使用文本修飾下劃線刪除線上劃線無字間距詞間距字間距詞間距和共同使用強制換行由于中文會強制換行,但是因為英文和數字不會強制換行。 css基礎—字體那些事 1. 首先講字的大小樣式等 字體大小 font-size: 40px; 文字字體 font-family: 宋體,Arial; 文字樣式...
摘要:因為網頁中可能存在中英文,中英文的字體樣式不同。要首先寫英文字體,在寫中文字體。上下移動目前可以使用文本修飾下劃線刪除線上劃線無字間距詞間距字間距詞間距和共同使用強制換行由于中文會強制換行,但是因為英文和數字不會強制換行。 css基礎—字體那些事 1. 首先講字的大小樣式等 字體大小 font-size: 40px; 文字字體 font-family: 宋體,Arial; 文字樣式...
閱讀 713·2023-04-25 19:43
閱讀 3910·2021-11-30 14:52
閱讀 3784·2021-11-30 14:52
閱讀 3852·2021-11-29 11:00
閱讀 3783·2021-11-29 11:00
閱讀 3869·2021-11-29 11:00
閱讀 3557·2021-11-29 11:00
閱讀 6105·2021-11-29 11:00