display:inline-block 間隙


IE6/7是不支持display:inline-block屬性,只是讓其表現的跟inline-block一樣,尤其對於inline水平的元素,其表現度可以用perfect一詞來形容了。

對於IE8+以及現代瀏覽器,直接使用:{display:inline-block;}就可以了,支持任意水平的元素。

對於不支持的IE6/7瀏覽器該怎么辦呢?

如果是inline水平的元素(如a標簽,span標簽之類)跟上面一樣,直接:{display:inline-block;}就可以了,對於這兩個瀏覽器,其功效與*zoom:1;是一樣的。

如果是block水平的元素,例如li標簽。則需要多點代碼,目前我知道的方法有兩個,如下所示:li {display:inline-block;*display:inline;*zoom:1}

 

 

display:inline-block布局的元素在chrome下會出現幾像素的間隙,原因是因為我們在編輯器里寫代碼的時候,同級別的標簽不寫在同一行以保持代碼的整齊可讀性,即inline-block布局的元素在編輯器里不在同一行,即存在換行符,因此這就是著名的inline-block“換行符/空格間隙問題”。如果inline-block元素間有空格或是換行產生了間隙,那是正常的,應該的。如果沒有空格與間隙才是不正常的(IE6/7 block水平元素)。

為了避免出現間隙,提供以下幾種解決辦法,這幾種方法靈活運用:

代碼實例:

li{display:inline-block;}

<ul>

  <li>

    <span>...</span>

  </li>

  <li>

    <span>...</span>

  </li>

</ul>

 

1.給 li 寫font-size:0

2.把li標簽寫到一行,不要在編輯器里敲回車換行,但是這種寫法對於標簽很多的情況可讀性太差,適用與例如<a></a><a></a>這樣簡單的結構

3.把li的標簽改成這樣的寫法

<li>
    <span>...</span>
</li><li>
    <span>...</span>
</li>


如果想深度了解display:inline-block 推薦閱讀:http://www.zhangxinxu.com/wordpress/?p=1194


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM