display:inline-block; /* 現代瀏覽器 +IE六、7 inline 元素 */ *display:inline; /* IE六、7 block 元素 */ *zoom:1;
注:*是CSS hack 告知IE六、IE7調用css
HTML 中的換行符、空格符、製表符等產生了空白符,而這些歸根結底都是字符,那麼它們的大小都是受 font-size 來控制的,因此認爲空隙是固定的想法是錯誤的。因此調整空隙能夠用font-size:0。當對與chorme這樣的早期瀏覽器有最小字大小時(自chorme19後就支持font-size:0),咱們能夠用 -webkit-text-size-adjust:none來設置,可是會直接致使頁面文字沒法縮放,這對於用戶來講顯然是不友好的,因此要確保使用地方沒有大面積文字。html
在IE6 IE7中不產生空格緣由:web
那麼爲什麼 IE六、7 block 元素沒有產生空隙呢?其實前面也提到了 IE 的 hasLayout,具備獨立性,因此產生 hasLayout 的元素之間表現出來互不影響,這也再次代表 IE六、7 中的 inline-block 不能等同於 CSS2.1 中的 inline-block。chrome
具體步驟:瀏覽器
第一步:使用 font-size:0佈局
經測試發現,chrome、firefox、IE8+、opera,inline 或 block 元素都沒有空隙了;測試
IE六、七、8(Q),inline 元素 inline-block 後始終存在 1px 左右的空隙。字體
第二步:能夠用letter-spacing:負值來調整spa
Safari 中 letter-spacing 負值的絕對值大於空隙大小後,內部會發生重疊。firefox
第三步:word-spacing來調整IE6 7的1px 空隙
letter-spacing 和 word-spacing 同時使用可能致使衝突,因此咱們須要在 IE六、7 中 hack 掉 letter-spacing。
white-space:normal | pre | nowrap | pre-wrap | pre-line
默認值:normal
父元素代碼:
font-size:0;/* 全部瀏覽器 */ letter-spacing:-5px;/* Safari 等不支持字體大小爲 0 的瀏覽器 */ *letter-spacing:normal; word-spacing:-1px;/* IE六、7 */
第四部,以上都是對父元素操做,子元素要重置正常值
子元素字體大小爲0了,子元素顯示爲空。同時字符間距和單詞間距重置爲默認值
子元素代碼:
font-size: 12px; letter-spacing: normal; word-spacing: normal;」