这次做的项目,客户说,banner图的上下之间不要留有空隙,仔细一看才发现,上下竟然都有空隙。审查元素,发现所有的div,img的padding和margin都是0,对于这个间隙究竟是如果产生的真的是找不到原因。
网上查了一下,类似的问题还蛮多的。
解决方法基本是四种:
1.将img设置为block;
这个基本可以解决img和div下方的缝隙问题。
2.设置img的竖直对齐方式
v-align:bottom;
3.设置父div的font-size:0
4.设置外层的div的line-height:0
推荐使用第一种方式。
但是本次项目奇怪的地方在于上下皆有缝隙,开始时,上面的缝隙可以通过margin-top:-10px解决。但是后来改了代码结构后,此方式也不行。网上找了很多,亦没有解决方式。
因此采用定位的方式解决:
设置父元素的position为relative
子元素img的position为absolute;设置top为0,完美解决此问题。
为了避免影响其他布局,设置下div的高度为img的高度。
问题出现的原因依旧没有找到,只是解决了这个问题。解决问题的方式有很多,不过郁闷的是常常解决了问题,却不知道为了是怎样发生了,不利于日后写代码的过程中去避免这些问题。
时间: 2024-09-27 16:36:43