[原创]ie6,7中td和img之间有间隙

情形描述

开发工具:VS2010;

浏览器版本:IE6以上,火狐,谷歌;

页面布局设计:Table+Img布局;

项目预览问题:火狐,谷歌,IE8以上未出现问题,IE6,IE7图片之间有间隙。

分析原因

1.td,img之间margin,padding设置不正确?    显然不是,如果设置了margin和padding其他浏览器应该也出现间隙。

2.前台页面顶部没有<!DOCTYPE html >之类的标签文档声明?    通过检查,已经设置了该文档标签。

3.是不是IE6,IE7对TD和IMG的间隙解析有问题?   待验证。

故障排除

1.将纯HTML页面转变ASPX页面,然后代码格式化。(本人忍受不了代码是一坨坨的,看着揪心。其实这也是导致后面IE6,7出现问题的原因)

2.各浏览器预览,IE6,IE7出现问题,利用F12开发工具追踪页面,发现确实是TD和IMG之间存在间隙,并且只有图片下方有间隙。

3.试各种办法看间隙,该看的CSS均没有异常,无奈查资料,查了好久,终于找到了原因。

4.修改前后代码比较:(为了能看出间隙,分别将body背景设置黑色,table为黄色)

代码修改之前:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">
        body,table, table tr td, img{margin: 0;padding: 0;}
        body{background-color: black;}
        table{background-color: yellow;}
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <table cellpadding="0" cellspacing="0">
        <tr>
            <!-----------------------------华丽的分割线  开始-------------------------->
            <td>
                <img width="200" alt="" height="200" src="upload/1_big.jpg" />
            </td>
            <td>
                <img width="200" alt="" height="200" src="upload/2_big.jpg" />
            </td>
            <td>
                <img width="200" alt="" height="200" src="upload/3_big.jpg" />
            </td>
            <td>
                <img width="200" alt="" height="200" src="upload/4_big.jpg" />
            </td>
            <!-----------------------------华丽的分割线  结束-------------------------->
        </tr>
    </table>
    </form>
</body>
</html>

修改之前IE6,7效果:

代码修改之后:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">
        body,table, table tr td, img{margin: 0;padding: 0;}
        body{background-color: black;}
        table{background-color: yellow;}
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <table cellpadding="0" cellspacing="0">
        <tr>
            <!-----------------------------华丽的分割线  开始-------------------------->
            <td><img width="200" alt="" height="200" src="upload/1_big.jpg" /></td>
            <td><img width="200" alt="" height="200" src="upload/2_big.jpg" /></td>
            <td><img width="200" alt="" height="200" src="upload/3_big.jpg" /></td>
            <td><img width="200" alt="" height="200" src="upload/4_big.jpg" /></td>
            <!-----------------------------华丽的分割线  结束-------------------------->
        </tr>
    </table>
    </form>
</body>
</html>

修改之后IE6,7效果图预览:

看到上面的两段代码,是不是大部分人都觉得没有变化啊,代码都一样的,其实仔细一看,就因为一个格式化,一个没有格式化。结果就出现了IE6.7版本的间隙问题。对于这种问题,各位作何感想。。。对于这样的问题,我只想说,大家先看着,我先去吐会儿血。。。

总结和感想

TD和IMG之间出现间隙,我所遇到的就三种:

1.本身TD和IMG之间存在margin或者padding之类的值;可以用开发工具检测一下他们之间的Margin,Padding,border之类的值。

2.前台页面顶部没有<!DOCTYPE html >之类的标签文档声明,这一条一般是容易被忽略的地方,也不容易检查到这种问题,所以平常应该多注意一下。想了解关于这个文档说明标签的请自行百度。

3.IE低版本两者存在间隙,其他浏览器版本均正常,如果出现此种情况,可以考虑上面的解决方式,试试将Td和Img标签亲密接触一下,不要那么疏远,也许会有意想不到的效果,有时候距离产生的不一定是美,而是小三。。。如同那个华丽的黄色间隙。。。

4.建议还是用DIV+IMG来布局,这样可以减少许多莫名其妙的问题,在页面的体验上来讲还是强于Table的。

时间: 2024-11-01 00:42:32

[原创]ie6,7中td和img之间有间隙的相关文章

Android中Fragment和Activity之间的互操作代码例子

摘要 本文介绍了Android中一个Activity中有多个Fragment的情况下,Fragment之间如何通过Activity进行互操作. 源代码 源代码地址为:http://download.csdn.net/detail/logicteamleader/8931199 源代码使用ADT编写,ADT版本为2014,Android版本为android-22. 技术要点 1.在Activity中的多个Fragment之间要互操作,一定要通过此Activity,不能直接通信: 2.在Activi

关于Jquery获取Table中td内的内容

$(this).children().eq(1).text()获取的是显示的值$(this).children().eq(1).html()获取的是<td></td>之间的所有内容$('.trSelected',grid).find("td").eq(7).text();获取的是选中的某行的内容 遍历表<table id="gird"..... $("#grid tr").each(function() {     

[原创]ActionScript3游戏中的图像编程(连载三十一)

2.2.4 Photoshop转Flash的投影角度换算 继续往下看,Photoshop不透明度选项下面是投影角度,默认值是120°,而Flash里角度是45°,两者相差将近90°,投影角度却相近,为什么?让我们把Flash的投影滤镜也设置成120°.(图 2.20) 图 2.20 角度值等于120的Flash投影 投影跑左边去了,x方向与Photoshop里的投影位置截然相反.经观察,Flash投影的角度与ActionScript的坐标系完全一致,它等于当前方向与水平线的夹角,顺时针为正,逆时

web前端_表格table布局,同一列两个&lt;td&gt;之间有间隙解决办法。

同学接了个很简单的网站.结果在布局的时候发现网页头部和网页主体之间差不多有1px的间隙.怎么也去除不了,帮忙看了看,隋记录下来,是这样的,网页头部和主体分别在两个<td>中(使用table布局),贴上简单demo: 效果如下,间隙消失了,最重要的是红色矩形圈起来的那句. 如果去掉红色矩形圈起来的部分,效果如下: web前端_表格table布局,同一列两个<td>之间有间隙解决办法.

IE6/7中li浮动外边距无法撑开ul的解决方法

昨天群里有人提出了这样的问题: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312&

Java中InputStream和String之间的转化

https://blog.csdn.net/lmy86263/article/details/60479350 在Java中InputStream和String之间的转化十分普遍,本文主要是总结一下转换的各种方法,包括JDK原生提供的,还有一些外部依赖提供的.1.InputStream转化为String1.1 JDK原生提供 方法一:byte[] bytes = new byte[0];bytes = new byte[inputStream.available()];inputStream.r

JavaScript中this和$(this)之间的区别

jQuery中this和$(this)之间的区别: this返回的是当前对象的html对象,而$(this)返回的是当前对象的jQuery对象 举个正确的Demo实例: $("#textbox").hover( function() { this.title = "Test"; }, fucntion() { this.title = "OK”; } ); 以上的this为html元素即元素textbox,该元素有title属性,因此以上的程序没有错误.如

cocos2d-x 中LUA和平台之间的函数调用理解

先看一张流程图如下: 第一步: 先把NDKHelper中的方法转成LUA中可以调用的,转得方法可参考quick中LUA的用法.这个类主要是中间桥梁的作用,它可以根据是什么平台调用IOSNDKHelper或者AndroidSNDKHelper,这些判断都是用C语言来写的.还有就是对一些回调函数的保存机制和平台要用LUA中一些方法的保存. 第二步: IOS平台需要处理的就是IOSNDKHelper,这个类主要就是接收和发送给NDKHelper数据的方法,还有一个就是加载IOS平台的BasePlatf

TCP中close和shutdown之间的区别

该图片截取自<<IP高效编程-改善网络编程的44个技巧>>,第17个技巧. 如果想验证可以写个简单的网络程序,分别用close和shutdown来断开连接,然后用tcpdump查看交互过程,就一目了然了.本来我想自己写个程序验证,但是自己笔记本上没有linux环境,公司环境又不能通外网,所以就放弃了. TCP中close和shutdown之间的区别,布布扣,bubuko.com