網(wǎng)站前端開(kāi)發(fā)之使用flex布局的小小心得

2023-02-23    分類(lèi): 網(wǎng)站建設(shè)

從事web前端開(kāi)發(fā)最近手上的項(xiàng)目有很多產(chǎn)品列表模塊,從布局上來(lái)說(shuō)以前習(xí)慣性用float來(lái)進(jìn)行排版,這種方式的優(yōu)點(diǎn)在于思路簡(jiǎn)單,算好比例,給出margin進(jìn)行間隔控制,然后將最右邊的一個(gè)產(chǎn)品的margin用css選擇器:nth-child() 取消即可,但是這樣一來(lái)就有一個(gè)弊端,那就是浮動(dòng)會(huì)給上下連接的其他頁(yè)面模塊帶來(lái)偏移,在之前我都是在產(chǎn)品列表外圍div里加上display:table來(lái)消除這個(gè)影響的,這樣做出來(lái)的效果也確實(shí)不錯(cuò),但是有些特殊情況的時(shí)候display:table這個(gè)屬性會(huì)將網(wǎng)頁(yè)撐開(kāi)、出現(xiàn)橫向滾動(dòng)條,這個(gè)時(shí)候?qū)able換成inline-block就能解決。這樣下來(lái)就感覺(jué)比較耗時(shí)間,而且有時(shí)候排查問(wèn)題一時(shí)間也想不到這個(gè)點(diǎn)上來(lái)。
到后面漸漸的開(kāi)始接觸flex布局,發(fā)現(xiàn)是真的簡(jiǎn)單明了,一個(gè)display:flex就解決了產(chǎn)品列表單個(gè)默認(rèn)自動(dòng)換行的問(wèn)題,不需要float來(lái)進(jìn)行排列了。然后就是justify-content屬性:flex-start、flex-end、center、space-betwe、space-arou這些屬性,分別實(shí)現(xiàn)了從左邊開(kāi)始排列、從右邊開(kāi)始排列、居中排列、兩端對(duì)齊模塊中間間隔等分排列、模塊兩側(cè)間隔相等排列。
而這個(gè)屬性不僅僅用于列表排列,同樣適用于文字排列,一些a標(biāo)簽里的文字,上下左右居中的話,加個(gè)justify-content:center就水平居中了,垂直居中的話還需要加一個(gè)align-items:center就行了,這樣就不用寫(xiě)死等高的行高,靈活度大大增加。
一般來(lái)說(shuō)一些產(chǎn)品、新聞列表啊;橫向?qū)Ш綑诘臋谀堪。际怯玫膉ustify-content:space-betwe來(lái)進(jìn)行欄目模塊間的間隔控制,只需算好欄目模塊的寬度占比就ok了。但是在多個(gè)產(chǎn)品多排排列的時(shí)候加了flex-wrap:wrap進(jìn)行換行外,在產(chǎn)品不夠排滿的時(shí)候,會(huì)出現(xiàn)尾排產(chǎn)品左右兩邊對(duì)齊,中間空格太多,影響排列規(guī)律美觀的情況,這種尾排未滿的情況還是經(jīng)常遇到的,所以一般這種排列的時(shí)候,就需要從左開(kāi)始排列,也就是justify-content:start這個(gè)屬性,然后給每個(gè)欄目模塊margin值進(jìn)行中間間隔控制,運(yùn)用:nth-child()選擇器進(jìn)行最右邊清除margin。雖然這樣做看起來(lái)和運(yùn)用float + margin來(lái)排列差不多,但是這樣做不需要考慮清除浮動(dòng)的問(wèn)題。算是比較方便的處理方法了。
日常頁(yè)面開(kāi)發(fā)中列表欄目排版的處理運(yùn)用以上方法基本就ok了。至于其他方面,就見(jiàn)仁見(jiàn)智了。

網(wǎng)站標(biāo)題:網(wǎng)站前端開(kāi)發(fā)之使用flex布局的小小心得
鏈接分享:http://muchs.cn/news37/239137.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、定制開(kāi)發(fā)、網(wǎng)站收錄、網(wǎng)站內(nèi)鏈、ChatGPT、面包屑導(dǎo)航

廣告

聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)