近来在做H5页面时,突然发现一个问题,使用一个div包裹一个img,在手机预览时,发现图片与div之间有间隙。
当时第一反应就是,是不是间距没有设置为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;
...
}
登录后复制
总结:第一次写随笔记录自己工作遇到的点点滴滴,可能写的不好,还请大牛多指导。