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;」