div和img之间的缝隙问题

这次做的项目,客户说,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

div和img之间的缝隙问题的相关文章

用CSS消除图片之间的缝隙

使用 CSS编排多张图片时,在图片下方有时会产生几个像素的缝隙~ 如下图所示:解决方法:只要在 CSS 中为图片定义以下规则: img { outline-width:0px; vertical-align:top; } 使用后的结果~ 如下图所示: CSS编排图片产生缝隙问题 使用 CSS编排多张图片时,在图片下方有时会产生几个像素的缝隙~ 如下图所示: 解决方法:只要在 CSS 中为图片定义以下规则: img{ vertical-align:bottom;} 使用后的结果~ 如下图所示: 用

Div+Css布局遇到的常见问题

IE的问题: 一.双边距问题浮动元素的外边距会加倍,但与第一个浮动元素相邻的其他浮动元素外边距不会加倍.解决方法:在此浮动元素增加样式  display:inline; 二.图片产生的间隙父元素直接包含<img>,这个图片下方会和父元素边缘产生间隙.解绝方法:1.在源代码中让</div>和<img>在同一行,因为那个间隙是由换行符产生的.2.给<img>添加样式  display:block; 三.最小高度问题块元素最小高度为10px,当高度定义小于10px

div+css通用兼容性代码整理

一.Div+css通用兼容性代码 你可以在css开头加入 *html{padding:0px} 复制代码 代码如下: <style> *html{padding:0px} /* Clear Fix */ .clearfix:after { content:”.”; display:block; height:0; clear:both; visibility:hidden; } .clearfix { display:inline-block; } /* Hide from IE Mac */

23----2013.07.01---Div和Span区别,Css常用属性,选择器,使用css的方式,脱离文档流,div+css布局,盒子模型,框架,js基本介绍

01 复习内容 复习之前的知识点 02演示VS创建元素 03div和span区别 通过display属性进行DIV与Span之间的转换. <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/&

3.5 盒子之间的关系

读者要理解前几节的内容并不困难,因为都只涉及一个盒子内部的关系.而实际网页往往是很复杂的,一个网页可能存在着大量的盒子,并且它们以各种关系相互影响着. 要把一个盒子与外部的其他盒子之间的关系理解清楚,并不是简单的事情.在很多CSS资料中大都通过简单的分类,就CSS本身的介绍来说明这个问题,往往只是就事论事.如果不能从站得更高的角度来理解这个问题,那么想真正搞懂它是很困难的,因此这里尝试从更深入的角度来介绍CSS与HTML的关系,希望对读者的理解有所帮助. 为了能够方便地组织各种盒子有序的排列和布

DIV+CSS 网页兼容性问题(IE6 IE7 IE8 IE9 火狐 chorm)

本文收集整理了IE7,6与Fireofx的CSS兼容性处理技巧,供大家参考. CSS兼容常用技巧 请尽量用xhtml格式写代码,而且DOCTYPE影响 CSS 处理,作为W3C标准,一定要加DOCTYPE声明. 1.div的垂直居中问题 vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了.缺点是要控制内容不要换行 http://www.php100.com 2. margin加倍的问题 设置为float的

理解事件捕获。在限制范围内拖拽div+吸附+事件捕获

一.实现的效果是在限制范围内拖拽div+吸附+事件捕获. 这里需要理解的是事件捕获,这个事件捕获也是为了兼容div在拖拽过程中,文本不被选中这个问题. 如此良辰美景,拖拽也可以很洒脱哈.先看看图, 二.一步步的实现这个拖拽过程的几个要求 (一)拖拽起来 里面的边框是表示页面哦(我们的屏幕所能看到的东东). 获取移动距离的思路: 记录鼠标按下和鼠标抬起两次的坐标,然后相减,再加上div跟边缘之间的间距.就得到移动距离. 之前我也在这里困惑了,不明白为什么还要再加上offsetLeft.原因就是cl

DIV CSS 网页兼容全搞定 (IE6 IE7 IE8 IE9 火狐 谷歌)

CSS兼容常用技巧 请尽量用xhtml格式写代码,而且DOCTYPE影响 CSS 处理,作为W3C标准,一定要加DOCTYPE声明. 1.div的垂直居中问题 vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了.缺点是要控制内容不要换行 http://www.php100.com 2. margin加倍的问题 设置为float的div在ie下设置的margin会加倍.这是一个ie6都存在的bug.解决方案

div+css 兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法(非原创)

div+css 兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法 1.DOCTYPE 影响 CSS 处理 2.FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行 3.FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中 4.FF: 设置 padding 后, div 会增加 height 和 wi