微信小程序flex布局的使用 flex布局技巧?
flex布局技巧?最近有個(gè)面試,面試官問(wèn)到,在一個(gè)寬度布局上,打比方有三個(gè)div,每個(gè)寬度為定寬apx,如果想使兩側(cè)寬度為x,中間div間間隔為2x。x是可以自適應(yīng)。怎么做很簡(jiǎn)單點(diǎn),兩行代碼就搞定:j
flex布局技巧?
最近有個(gè)面試,面試官問(wèn)到,在一個(gè)寬度布局上,打比方有三個(gè)div,每個(gè)寬度為定寬apx,如果想使兩側(cè)寬度為x,中間div間間隔為2x。x是可以自適應(yīng)。
怎么做很簡(jiǎn)單點(diǎn),兩行代碼就搞定:
justify-content具體用法屬性有:flex-start|flex-end|center|space-between|space-around
前三個(gè)就是字面意思,向行起始位置整個(gè)表格,向行結(jié)束了位置對(duì)齊,向行中間位置對(duì)齊。
后兩個(gè)中,space-between:元素會(huì)你算算地分布在行里。如果沒(méi)有最左邊的殘余空間是負(fù)數(shù),或?yàn)o州銀行僅有一個(gè)子元素,則該值相位差于#39flex-start#39。在其它情況下,最先元素的邊界與行的主起始位置的邊界尺寸線,而還有一個(gè)元素的邊界與行的主結(jié)束了位置的邊距對(duì)齊,而殘余的旋動(dòng)盒項(xiàng)目則你算算其分布,并切實(shí)保障兩兩之間的小方框空間大小關(guān)系。大白話是會(huì)把第一個(gè)元素的位置與行結(jié)束位置對(duì)其,第一個(gè)元素與行結(jié)束后位置對(duì)其,中間的剩余空間總平均分布。
space-around:彈性盒子元素會(huì)換算下來(lái)地分布特點(diǎn)在行里,連接導(dǎo)線記錄子元素與子元素之間間距大小的一半。如果最左邊的剩下的空間是負(fù)數(shù),或中原銀行只有三個(gè)自由伸縮盒項(xiàng)目,則該值相位差于#39center#39。在其它情況下,自動(dòng)收縮盒項(xiàng)目則來(lái)算其分布,并以保證兩兩之間的空白位置空間之和,同樣第一個(gè)元素前的空間以及最后一個(gè)元素后的空間為其他空白空間的一半。
聽(tīng)完這反正都是廢話,這些大都flex布局初始學(xué)習(xí)就會(huì)所接觸到的。要注意是這個(gè)面試官又問(wèn),如果中間并非2x,是x呢,也就是每個(gè)間隙與兩側(cè)的間隔不同。也這樣:
這個(gè)問(wèn)題我一結(jié)束想的是兩側(cè)設(shè)置里padding,中間用justify-content:space-between可惜那樣的話在有所不同的屏幕上看見(jiàn)了的兩側(cè)padding值絕對(duì)是有所不同的,所以我中間的間隙與兩側(cè)就不想等了。。。所以我結(jié)果我也沒(méi)想出去。出去之后發(fā)現(xiàn)justify-content居然還有space-evenly這么說(shuō)個(gè)屬性!這個(gè)屬性干嘛是用顯而易見(jiàn)。勻?qū)嵟帕忻總€(gè)元素,每個(gè)元素之間的間隔時(shí)間大小關(guān)系。上題就可以解決了。但space-evenly的兼容性相比于具體方法的justify-content值來(lái)說(shuō)我還是要差不少。
我們又不能只滿足與能解決幾道面試題,再實(shí)際情況下可能會(huì)有很多奇葩的情況,諸如上圖4個(gè)x把它改成3個(gè)x,一個(gè)2x(雖說(shuō)我是從來(lái)沒(méi)曾經(jīng)見(jiàn)過(guò)這種奇葩的設(shè)計(jì)。。)那又該怎么辦呢?
這里我他知道了css3的cacl(),這玩意兒百分比,px值混搭起來(lái)都能計(jì)算出,強(qiáng)的一批。例如基于上面的要求:
也一般可以至少效果。(打比方a的值為100px)而且反正是什么情況都是可以計(jì)算出出你打算的大小,那絕對(duì)是千萬(wàn)不能太爽。
flex布局怎么讓div中的div移動(dòng)?
系統(tǒng)設(shè)置div的外邊距距離,設(shè)置margin屬性。