去除inline-block元素間的空隙

inline-block元素在佈局時會給咱們帶來不少方便,但它有一個明顯的bug,就是inline-block元素間會有一個4px的間隙(有的瀏覽器多是8px)。廢話很少說了,直接講解決方法吧。css

整體來時可分爲兩種方法,一種是改變html結構法,另外一種是css法。html

先說第一種,好比下面這段代碼:瀏覽器

1
2
3
4
5
6
< ol >
    < li >首頁</ li >
    < li >關於咱們</ li >
    < li >聯繫咱們</ li >
    < li >加入咱們</ li >
</ ol >

假設 li 是 inline-block元素,則 li 間會出現討厭的空隙,這時咱們能夠換個寫法:佈局

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
< ol >
    < li >首頁</ li
    >< li >關於咱們</ li
    >< li >聯繫咱們</ li
    >< li >加入咱們</ li >
</ ol >
< ol >
    < li >
    首頁</ li >< li >
    關於咱們</ li >< li >
    聯繫咱們</ li >< li >
    加入咱們</ li >
</ ol >
< ol >
    < li >首頁</ li > <!--
    --> < li >關於咱們</ li > <!--
    --> < li >聯繫咱們</ li > <!--
    --> < li >加入咱們</ li >
</ ol >

 

以上三種寫法都是能夠的,總之就是避免讓 </li>與<li>之間出現書面上的空格。spa

還有一種寫法是去除閉合標籤,如:code

1
2
3
4
5
6
< ol >
    < li >首頁
    < li >關於咱們
    < li >聯繫咱們
    < li >加入咱們
</ ol >

這種寫法由於不符合html規範,因此仍是避免使用爲好orm

 

第二種是css解決方法。思路是把inline-block元素的父元素的font-size設爲0,letter-spacing和word-spacing設爲負數,而後再在inline-block元素中把這幾個值恢復正常便可。htm

1
2
3
4
5
6
7
8
9
10
11
12
ul{
   font-size : 0 ;
   letter-spacing : -4px ; /*實際狀況下 -4這個值可能還要調整*/
   word-spacing : -4px ;   /*實際狀況下 -4這個值可能還要調整*/   
}
ul li{
   display :inline-bolck;
   zoom: 1 ;
   font-size : 12px ;
   letter-spacing : normal ;
   word-spacing : normal ;
}

貌似我還看到過一種js方法,思路大概是經過移除inline-block元素之間的文本節點來實現的,但能用css解決的東西就別動用js啦。ci

相關文章
相關標籤/搜索