前端小技巧02-基于inline-block的列表布局

想必浮動布局大家都已經了解并熟練了,這是個栗子,你有一個好友列表:


用浮動布局挺正常對吧,萬一小李子的昵稱被搶注了,那只好用全稱 萊昂納多·迪卡普里奧,于是這個好友列表變成了這樣:


這是由于沒有給沒一個列表項給定固定寬高,所以發現布局亂套了有木有。那如果給定寬高,設置overflow:hidden(溢出隱藏),就會把名字截掉一半,小李子表示名字長怪我咯?怎么不說畢加索的名字呢。


因為開發的時候需要考慮到種種可能,如果把列表高度設置很高,一排好友列表的名字都是非常短一行可以顯示,那就又空余了很多,很難看。所以,這種列表布局才用浮動的方式顯然并不是最完美的解決方案。

今天介紹一種基于display:inline-block的方法來實現列表布局。對于這種高度不固定的列表布局有奇效。

HTML結構:


CSS樣式:


效果圖:


此時你發現列表之間多了些間距,怎么去掉?請參考上一篇文章:花樣去除inlien-block元素間距.

我們再改下CSS代碼,去除列表間距,給外面的UL標簽加上內邊距:


得到效果圖:


這時候你發現間距是沒了,可是還很多問題需要解決,第一個就是列表的頂部尚未對齊,第二個就是列表的水平等間距排列并沒有實現。

目前列表都是inline-block,所以我們給li加個vertical-align: top,讓他們頂部對齊。列表水平等間距排列,我們可以用text-align: justify,這個除了用在段落文本的兩端對齊之外,還可以巧用在這里哦(此處應該有掌聲)。部分代碼及效果圖如下:


第一排是不是兩端對齊了?那么問題來了,列表(或文字)要兩端對齊的前提就是內容必須超過一行,而且對最后一行還沒有效果。

要解決最后一行列表無法兩端對齊其實也很簡單,就是在列表的最后創建一個高度為0的寬度100%的透明的inline-block的標簽層就可以:


CSS樣式及效果圖如下:


這種布局在響應式或者移動端是非常友好的,可以隨著頁面大小的變化,自動變化布局,不信我隨意拖動一下預覽窗口大小,你們看下結果:


好了,還有更多好玩的,等著你們去發現。也歡迎私聊告訴我。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容