CSS網(wǎng)格項(xiàng)目的縱橫比技巧有哪些

這篇文章主要講解了“CSS網(wǎng)格項(xiàng)目的縱橫比技巧有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“CSS網(wǎng)格項(xiàng)目的縱橫比技巧有哪些”吧!

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括敦煌網(wǎng)站建設(shè)、敦煌網(wǎng)站制作、敦煌網(wǎng)頁制作以及敦煌網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,敦煌網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到敦煌省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

情形1) 只是內(nèi)部的元素需要設(shè)縱橫比。

好,這個(gè)可能比較容易一些。 只要保證元素的寬度和網(wǎng)格區(qū)域的寬度100%相同,然后加上偽元素來處理拉伸高度的縱橫比。

<div
 class="grid"> <div style="--aspect-ratio: 
2/1;">2/1</div> <div style="--aspect-ratio: 
3/1;">3/1</div> <div style="--aspect-ratio: 
1/1;">1/1</div></div>
.grid { display: grid; 
grid-template-columns: 1fr 1fr 1fr; place-items: start;}.grid > * { 
background: orange; width: 100%;}.grid > 
[style^='--aspect-ratio']::before { content: ""; display: inline-block; 
width: 1px; height: 0; padding-bottom: calc(100% / 
(var(--aspect-ratio)));}

注意,應(yīng)用縱橫比并不一定要通過自定義屬性??梢钥吹?,這里的臟活累活都是由底部填充(padding-bottom)這條規(guī)則完成的,它的值也可以直接用固定值或別的什么。

情形2) 跨列求寬

我覺得,其實(shí)大家想要的更可能是這樣的效果,就是設(shè)一個(gè)2:1的縱橫比,然后元素就能確確實(shí)實(shí)地跨兩列,而不是局限在一列里。做法和上面的差不多,但要加規(guī)則來實(shí)現(xiàn)跨列。

[style="--aspect-ratio:
 1/1;"] { grid-column: span 1;}[style="--aspect-ratio: 2/1;"] { 
grid-column: span 2;}[style="--aspect-ratio: 3/1;"] { grid-column: span 
3;}

如果再加進(jìn)一條grid-auto-flow: dense;規(guī)則,我們還可以讓不同網(wǎng)格項(xiàng)目有不同的縱橫比,它們可以整齊地相互包圍,顯得很協(xié)調(diào)。

到了這里,就該講講哪些做法會(huì)把準(zhǔn)確的縱橫比搞砸。有些文字的行高line-height屬性可能會(huì)把方框頂?shù)眠^高;要用網(wǎng)格間距grid-gap這個(gè)屬性也可能會(huì)弄亂縱橫比。如果縱橫比例要求一定超準(zhǔn),可能就要多試幾個(gè)固定值,碰運(yùn)氣了。

如果網(wǎng)格本身沒有固定數(shù)量的行,做跨列也會(huì)變得比較麻煩。大家做的可能是重復(fù)函數(shù)repeat加自動(dòng)填充auto-fill的效果,這樣最后遇到的情況可能是有幾個(gè)列不相等,那它們的縱橫比也好不到哪里去。這個(gè)問題也許下次我們?cè)賮砩钊胙芯恳幌隆?/p>

情形 3) 硬來

網(wǎng)格有能力進(jìn)行二維布局。真想做的話,只要強(qiáng)迫網(wǎng)格區(qū)域高和寬符合縱橫比就可以了。比如,給列和行直接設(shè)定固定的值,這種做法也不是不行:

.grid { display: grid; grid-template-columns: 200px 100px 100px; grid-template-rows: 100px 200px 300px;}

我們一般不會(huì)考慮這種方法,因?yàn)槎枷M卮笮§`活易變,正是由于這個(gè)原因,上面的縱橫比例子里用的技術(shù)都是基于百分比的。但是固定值仍然不失為另一種選擇。

看看Pen網(wǎng)站CodePen上縱橫比方框填充這個(gè)例子,作者Chris Coyier。

這個(gè)例子強(qiáng)迫網(wǎng)格區(qū)域大小固定,然后讓其中的元素拉伸填充這個(gè)區(qū)域,不過我們大可把元素的大小也固定下來。

這個(gè)問題一部分在于不但要給方框加上縱橫比,還要在方框內(nèi)實(shí)現(xiàn)對(duì)齊功能。有幾種方法可以實(shí)現(xiàn),但我認(rèn)為最簡單的方法是網(wǎng)格套網(wǎng)格。給網(wǎng)格元素加上display: grid;規(guī)則,然后利用那個(gè)內(nèi)部網(wǎng)格的對(duì)齊功能來實(shí)現(xiàn)。

感謝各位的閱讀,以上就是“CSS網(wǎng)格項(xiàng)目的縱橫比技巧有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)CSS網(wǎng)格項(xiàng)目的縱橫比技巧有哪些這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

網(wǎng)站欄目:CSS網(wǎng)格項(xiàng)目的縱橫比技巧有哪些
本文鏈接:http://bm7419.com/article22/pcdcjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、全網(wǎng)營銷推廣動(dòng)態(tài)網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)企業(yè)網(wǎng)站制作、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)