從事web前端開發(fā)最近手上的項(xiàng)目有很多產(chǎn)品列表模塊,從布局上來說以前習(xí)慣性用float來進(jìn)行排版,這種方式的優(yōu)點(diǎn)在于思路簡單,算好比例,給出margin進(jìn)行間隔控制,然后將最右邊的一個產(chǎn)品的margin用css選擇器:nth-child() 取消即可,但是這樣一來就有一個弊端,那就是浮動會給上下連接的其他頁面模塊帶來偏移,在之前我都是在產(chǎn)品列表外圍div里加上display:table來消除這個影響的,這樣做出來的效果也確實(shí)不錯,但是有些特殊情況的時候display:table這個屬性會將網(wǎng)頁撐開、出現(xiàn)橫向滾動條,這個時候?qū)able換成inline-block就能解決。這樣下來就感覺比較耗時間,而且有時候排查問題一時間也想不到這個點(diǎn)上來。
到后面漸漸的開始接觸flex布局,發(fā)現(xiàn)是真的簡單明了,一個display:flex就解決了產(chǎn)品列表單個默認(rèn)自動換行的問題,不需要float來進(jìn)行排列了。然后就是justify-content屬性:flex-start、flex-end、center、space-betwe、space-arou這些屬性,分別實(shí)現(xiàn)了從左邊開始排列、從右邊開始排列、居中排列、兩端對齊模塊中間間隔等分排列、模塊兩側(cè)間隔相等排列。
而這個屬性不僅僅用于列表排列,同樣適用于文字排列,一些a標(biāo)簽里的文字,上下左右居中的話,加個justify-content:center就水平居中了,垂直居中的話還需要加一個align-items:center就行了,這樣就不用寫死等高的行高,靈活度大大增加。
一般來說一些產(chǎn)品、新聞列表??;橫向?qū)Ш綑诘臋谀堪?,都是用的justify-content:space-betwe來進(jìn)行欄目模塊間的間隔控制,只需算好欄目模塊的寬度占比就ok了。但是在多個產(chǎn)品多排排列的時候加了flex-wrap:wrap進(jìn)行換行外,在產(chǎn)品不夠排滿的時候,會出現(xiàn)尾排產(chǎn)品左右兩邊對齊,中間空格太多,影響排列規(guī)律美觀的情況,這種尾排未滿的情況還是經(jīng)常遇到的,所以一般這種排列的時候,就需要從左開始排列,也就是justify-content:start這個屬性,然后給每個欄目模塊margin值進(jìn)行中間間隔控制,運(yùn)用:nth-child()選擇器進(jìn)行最右邊清除margin。雖然這樣做看起來和運(yùn)用float + margin來排列差不多,但是這樣做不需要考慮清除浮動的問題。算是比較方便的處理方法了。
日常頁面開發(fā)中列表欄目排版的處理運(yùn)用以上方法基本就ok了。至于其他方面,就見仁見智了。
文章名稱:網(wǎng)站前端開發(fā)之使用flex布局的小小心得
文章源于:http://jinyejixie.com/news/239137.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、域名注冊、定制網(wǎng)站、網(wǎng)站排名、網(wǎng)站收錄、Google
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源:
創(chuàng)新互聯(lián)