最近这几天看了inline-block的用法,用它来代替浮动实现水平排列很不错,只是要解决一下浏览器兼容和间隙的问题。关于ie6,7的兼容问题 《inline-block 前世今生》(http://ued.taobao.com/blog/2012/08/inline-block/)里讲解的很细致深入,解决办法也讲的很详细,在这里自己就简单记录下。

首先就是inline-block在ie6,7的表现,行内元素在设置inline-block之后表现出来的就是水平排列,但是块级元素仍然是自上而下排列,截图如下:

关于这个差异解释是,在ie6,7下行内元素的inline-block触发了hasLayout属性,其表现和inline-block类似,而块级元素触发了hasLayout也不能水平排列,所以要解决这个差异,可以用inline让块级元素转行成inline元素得以换行,然后用zoom:1触发hasLayout,所以有了以下代码:

*display:inline; /* 其实是针对IE6、7 block 元素 */
    
*zoom:1;

这样修复以后,ie6,7下块级元素表现的很好,水平排列并且没有间隙,但是行内元素有间隙,其他浏览器如ff,chrome也有间隙,截图如下:

造成这个间隙的是空白符,换行回车都会产生这个空白符,上面提到的博文里很细致的解决了这个问题,但是我个人比较懒,觉得解决方法比较繁琐,在参考了http://css-tricks.com/fighting-the-space-between-inline-block-elements 这篇blog后,觉得下面的这个解决方法不错:

 <div>
<a href="">行内元素1</a><!--
--><a href="">行内元素2</a><!--
--><a href="">行内元素3</a><!--
--><a href="">行内元素4</a>
</div>

既然间隙是空白符造成的,去掉空白符就好了,这种方法可能不太优雅,不过在要求不太严格的情况下可以用一下。

现在皆大欢喜了:

最新文章

  1. iOS 苹果开发证书失效的解决方案(Failed to locate or generate matching signing assets)
  2. hdu 2896 病毒侵袭 ac自动机
  3. php:Header
  4. WP开发资源
  5. this和super
  6. 虚拟机设置静态ip
  7. sharedPreference
  8. oracle基本语句
  9. jmeter压测SSL加密网站
  10. RHEL7和RHEL6的主要变化
  11. zabbix之1监控概念
  12. loadrunner解决浏览器死机问题
  13. mysql字符集,insert,update,delete,select
  14. 【算法】Bert预训练源码阅读
  15. python-day2列表、元祖、字典;编码;字符串
  16. Plugin &#39;Lombok Plugin&#39; is incompatible with this installation
  17. SSM整合——完全版
  18. 从github下载某个git库的4种方法[zz]
  19. TCP/UDP client/server library for Java, 最好的java语言tcp udp 服务器客户端实现库
  20. k8s+docker学习连接汇总

热门文章

  1. golang sha1 signature
  2. linux 删除和安装java
  3. HibernateTransactionManager 和 hibernateTemplate的区别
  4. Hoeffding连接到机器学习
  5. A fatal error has been detected by the Java Runtime Environment:
  6. VS2010中经常使用的快捷键
  7. Java复习第一天---Javascript的基本知识点
  8. Backbone实例todos分析
  9. oracle update语句的几点写法
  10. WebView缓存