[原创]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的。
[原创]ie6,7中td和img之间有间隙的更多相关文章
- 【Web】[原创]ie6,7中td和img之间有间隙
情形描述 开发工具:VS2010: 浏览器版本:IE6以上,火狐,谷歌: 页面布局设计:Table+Img布局: 项目预览问题:火狐,谷歌,IE8以上未出现问题,IE6,IE7图片之间有间隙. 分析原 ...
- 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 < ...
- span 右浮动折行 解决ie6/7中span右浮动折行问题
A floated box is shifted to the left or right until its outer edge touches the containing block edge ...
- Java中InputStream和String之间的转化
https://blog.csdn.net/lmy86263/article/details/60479350 在Java中InputStream和String之间的转化十分普遍,本文主要是总结一下转 ...
- IE6/IE7中li底部4px空隙的Bug
当li的子元素中有浮动(float)时,IE6/IE7中<li>元素的下面会产生4px空隙的bug. 代码如下: <ul class="list"> < ...
- 如何让table中td宽度固定
table中td会随着里面的内容伸缩,设置其width样式并没有效果.这个时候需要下面的CSS可以实现. 首先是设置table .table {table-layout:fixed;} 其次是td . ...
- JavaScript中this和$(this)之间的区别以及extend的使用
jQuery中this和$(this)之间的区别: this返回的是当前对象的html对象,而$(this)返回的是当前对象的jQuery对象 举个正确的Demo实例: $("#textbo ...
- IE6/7中setAttribute不支持class/for/rowspan/colspan等属性
如设置class属性 ? 1 el.setAttribute('class', 'abc'); 在IE6/7中样式“abc”将没有起作用,虽然使用el.getAttribute('class')能取到 ...
- C#中String 与Color之间的相互转换
C#中String 与Color之间的相互转换 ————————————宋兴柱 其实,我们平常如果要在数据库存放Color类型值的话,肯定会在数据库中建立varchar类型.对吧.但是Colo ...
随机推荐
- bzoj1202
很久以前写的,忘补解题报告了首先似乎dfs就可以了吧?但还有更高大上的做法其实这东西就是告诉sum[y]-sum[x-1]=z然后给出一堆看成不成立可以用并查集,维护每个点到father点的差即可 . ...
- WordPress RokIntroScroller插件‘thumb.php’多个安全漏洞
漏洞名称: WordPress RokIntroScroller插件‘thumb.php’多个安全漏洞 CNNVD编号: CNNVD-201309-383 发布时间: 2013-09-24 更新时间: ...
- Net中的反射使用入门
[转载] MSDN:ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpguide/html/cpcondiscoveringtypeinformatio ...
- Delphi TcxTreeList 节点添加图片
需要给TcxTreelist的列添加图片,操作如下 1.设置列, 设置Properties为ImageComboBox , 2. 设置Properties -> Items 添加内容 对应的增加 ...
- 一步一步写一个简单通用的makefile(三)
上一篇一步一步写一个简单通用的makefile(二) 里面的makefile 实现对通用的代码进行编译,这一章我将会对上一次的makefile 进行进一步的优化. 优化后的makefile: #Hel ...
- LR(1)表生成算法演示程序
/* * LR 转换表 * + Goto 记录表 * + 状态转换表 */ #include <stdio.h> #include <stdlib.h> #include &l ...
- JS中多个onload冲突解决办法
一 多个window.onload冲突 在一个页面中有两个JavaScript 分别都用到了window.onload一个是:window.onload=externallinks,另一个是:win ...
- Cleaner Robot - CodeForces 589J(搜索)
有一个M*N的矩阵,有一个会自动清洁的机器人,这个机器人会按照设定好的程序来打扫卫生,如果当前方向前面可以行走,那么直接走,如果不可以走那么会向右转动90度,然后回归上一步判断.求机器人最多能打扫的面 ...
- Spring boot 内存优化
转自:https://dzone.com/articles/spring-boot-memory-performance It has sometimes been suggested that Sp ...
- Java多线程小结
简述 Java是支持多线程编程的语言,线程相比于进程更加轻量级,线程共享相同的内存空间,但是拥有独立的栈.减少了进程建立.销毁的资源消耗.jdk1.5后对java的多线程编程提供了更完善的支持,使得j ...

