display:inline-block引起的間隙問題解決辦法

在網頁佈局中咱們常常會用到display:inline-block;好處是:可以將塊狀元素按照內聯元素的方式佈局,同時能設置寬高。我的感受很好用,但是用多了慢慢的問題就來了?html

1.display:inline-block;在IE6/7中不兼容瀏覽器

解決辦法:display:inline-block;*dsiplay:inline;*zoom:1;wordpress

2.display:inline-block;會產生莫名的間隙(4px)佈局

緣由:換行或空格會佔據必定的位置,從而產生間隙,spa

解決辦法:orm

1.在html代碼中除去當前元素的空格或換行,該方法太麻煩,並且影響HTML代碼的可讀性,不同意。htm

2.在當前元素的父元素中設置font-size:0;其做用與1方法本質上是同樣的,但有可能在chorme中不支持ip

3.在當前元素的父元素中設置letter-spaceing:-4px;其做用是能夠控制文字間的水平距離,可讓文字水平方向上重疊(line-height是讓文字垂直方向上重疊),這樣就抵消了空格或換行的佔位。ci

結論以下:
» block水平的元素inline-block化後,IE6/7沒有換行符間隙問題,其餘瀏覽器均有;
» inline水平的元素inline-block後,全部主流瀏覽器都有換行符/空格間隙問題;
» font-size:0,去除換行符間隙,在IE6/7下殘留1像素間隙,Chrome瀏覽器無效,其餘瀏覽器都完美去除;
» letter-spacing負值能夠去除全部瀏覽器的換行符間隙,可是,Opera瀏覽器下極限是間隙1像素,0像素會反彈,換行符間隙還原。get

推薦解決方法:

同時設置font-size:0;letter-spaceing:-4px;

 

 

本文參考張鑫旭的 拜拜了,浮動佈局-基於display:inline-block的列表佈局

相關文章
相關標籤/搜索