近来在做H5页面时,突然发现一个问题,使用一个div包裹一个img,在手机预览时,发现图片与div之间有间隙。

img与父元素的间隙解决-LMLPHP

 当时第一反应就是,是不是间距没有设置为0,于是预览了下代码:

  .active img {

    width:100%;

    margin: 0;

  }

 后来浏览了一些技术文档,发现了问题所在,原来是因为在H5文档声明下,块状元素内部的内联元素的行为表现所致,简单地说就好像块状元素内部有个看不见的没有宽度的空白节点。
而不设置vertical-align属性,vertical-align默认是baseline。
现解决方案有如下两种:
1.第一种最直接的解决方法是:

设置img的标签:vertical-align:bottom

修改后的的代码:
登录后复制
.active img{
  width:100%;
  margin:0;
  vertical-align:bottom;//top和bottom都可以
}
登录后复制

2.由于baseline是设置行内元素(inline)或者表格单元素(table-cell)的垂直对齐方式,所以可以将img转换成块级元素。
第二种方法:display:block,把父元素的font-size设为0
修改后的代码:
登录后复制
.active img{
  width:100%;
  margin:0;
  display:block;
}

.active{
font-size;0;
...
}
登录后复制

 总结:第一次写随笔记录自己工作遇到的点点滴滴,可能写的不好,还请大牛多指导。 

09-13 02:15