css幾種解決inline-block間隙的方案(整理)
序
display有幾種屬性:
inline是內聯對象,比如<a/> 、 <span/>標簽等,可以“堆在一起”顯示,寬高由內容決定,不能設置;
block是塊對象,比如<div/>、<p/>標簽等,要占一整行,但是寬高可以自定義;為了彌補inline和block的不足,又擴充了inline-block屬性;
inline-blcok可以將對象呈遞為內聯對象,而內容作為塊對象呈遞。
通俗點講就是“可定寬高的堆在一起”顯示

為什么會有間隙
inline-blcok塊之間的不可見符號會被保留父層字體的1/3大小的空間
解決方案
知道了原因,方案就好找了,我把它分為以下幾種

原始狀態(tài)
<ul>
<li>item1</li>
<li>item2</li>
<li>item3</li>
<li>item4</li>
<li>item5</li>
</ul>
1、改變書寫結構
<ul>
<li>item1</li><li>item2</li><li>item3</li><li>item4</li><li>item5</li>
</ul>
<ul>
<li>
item1</li><li>
item2</li><li>
item3</li><li>
item4</li><li>
item5</li>
</ul>
<ul>
<li>item1</li
><li>item2</li
><li>item3</li
><li>item4</li
><li>item5</li>
</ul>
<ul>
<li>item1</li><!--
--><li>item2</li><!--
--><li>item3</li><!--
--><li>item4</li><!--
--><li>item5</li>
</ul>

效果圖
以上幾種均可以完美的達到去除間隙的作用
但是,從代碼的可讀性上看,或多或少有一些不足
2、打包工具
使用打包工具或者自寫腳本,在上線前將響應HTML代碼打包成一行,即可
3、丟失結束標簽
<ul>
<li>item1
<li>item2
<li>item3
<li>item4
<li>item5
</ul>
此方法雖然可以解決此問題,但是在Doctype為xhtml時將報錯,所有方法是否適用須視情況而定。
4、css hack
知道間隙的產生原因和間隙的大小后,動手寫一個css hack也是一種很好的方法
1、將父容器的字體大小設置為0,可解決絕大多數瀏覽器(老版本safari不支持)
2、針對不支持上條的瀏覽器設置字塊或字符間間隙letter-spacing/word-spacing,推薦letter-spacing,因為此屬性不會產生負間隙,但需要注意,要在子元素上設置letter-spacing:0
3、如果你轉化但是塊對象,那需要為低版本瀏覽器設置inline兼容,不讓樣式會亂掉
總結以上幾點給出以下代碼
.parent {
letter-spacing: -.3333em;
font-size: 0;
}
.child {
display: inline;
display: inline-block;
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章

快速解決css使用@keyframes加載圖片首次循環(huán)時出現白色間隙問題(閃屏)
這篇文章主要介紹了快速解決css使用@keyframes加載圖片首次循環(huán)時出現白色間隙問題(閃屏),本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以2020-02-25
這篇文章主要介紹了詳解CSS 去掉inline-block元素間隙的幾種方法,這些間隙會導致一些布局上的問題,需要把間隙去掉。非常具有實用價值,需要的朋友可以參考下2018-11-13- 這篇文章主要介紹了CSS圖片下面有間隙的6種解決方案,需要的朋友可以參考下2017-09-11
css解決display:inline-block;產生的縫隙(間隙)的方法
本篇文章主要介紹了css解決display:inline-block;產生的縫隙(間隙)的方法,具有一定的參考價值,有需要的可以了解一下。2016-12-14- 這篇文章主要介紹了CSS清除圖片下幾像素空白間隙的方法 ,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-14



