想要创建出漂亮的网页设计,除了要认真学习每一个html和CSS代码之外,不可能不去了解一下臭名昭著的IE6和更早的那些IE浏览器的坏脾气,因为你本来写出的规规矩矩的代码,漂亮的设计就此就要完成了,却发现呈现出的效果压根不是你所期望的那样,漂亮的布局被破坏的体无完肤。更可气的是当你查找一遍代码中的错误时,却压根找不出来。这时候你就迫切需要了解一下IE6和它的那些同伙的坏脾气了,因为很可能它们就是罪魁祸首。到底IE6的那几个家伙们到底是如何搞乱你的设计的?咱们双该如何解决呢,别急,请听我慢慢道来:

 1.在IE 6 7 元素浮动要并在同一行都要加浮动

  

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ie双边距问题</title>
</head>
<style>
.left{width: 100px;height: 300px;background: red;float: left;}
.box{width: 400px;} .right{width: 300px;float: left;}
</style>
<body>
<div class="box">
<div class="left"></div>
<!--在IE 6 7 元素浮动要并在同一行都要加浮动*--->
<div class="right">
想要创建出漂亮的网页设计,除了要认真学习每一个html和CSS代码之外,不可能不去了解一下臭名昭著的IE6和更早的那些IE浏览器的坏脾气,因为你本来写出的规规矩矩的代码,漂亮的设计就此就要完成了,却发现呈现出的效果压根不是你所期望的那样,漂亮的布局被破坏的体无完肤。更可气的是当你查找一遍代码中的错误时,却压根找不出来。这时候你就迫切需要了解一下IE6和它的那些同伙的坏脾气了,因为很可能它们就是罪魁祸首。到底IE6的那几个家伙们到底是如何搞乱你的设计的?咱们双该如何解决呢,别急,请听我慢慢道来:
</div>
</div>
</body>
</html>

不加浮动的话 在ie67 下会有3px如图:

所以在在IE 6 7 元素浮动要并在同一行都要加浮动

     一:IE6、 7下双边距Bug
一段无错的代码把一个居左浮动(float:left)的元素放置进一个容器盒(box),并在浮动元素上使用了左边界(margin-left) 来令它和容器的左边产生一段距离。看起来相当的简单,对吗?但直至它被在IE/Win中浏览为止,在浏览器中居左浮动元素的边界长度被神秘地翻了一倍!
先来看一下图片:
 
     在下面的实验中,我们要让这个绿色的盒模型在蓝色盒模型之内向左浮动,并且距蓝色盒模型左侧100像素。这个例子很常见,比如在网页布局中,侧边栏靠左侧内容栏浮动,并且要留出内容栏的宽度。要实现这样的效果,我们给绿色盒模型应用以下CSS属性:
以下为引用的内容:
.floatbox { 
float: left; 
width: 150px; 
height: 150px; 
margin: 5px 0 5px 100px; 
/*外边距的最后一个值保证了100像素的距离*/ 
}
     看起来是很简单的吧?但是当我们在IE6中查看时,却会发现左侧外边距100像素,被扩大到200个像素。如下图:
 
     二:该如何来修正这个Bug?
     这个修正其实很简单,只需要给浮动元素加上display:inline;这样的CSS属性就可以了。就这么简单?对,就这么简单。如下图:
 

CSS代码如下:

以下为引用的内容:
.floatbox { 
float: left; 
width: 150px; 
height: 150px; 
margin: 5px 0 5px 100px; 
display: inline; 
}

例子:

 <!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<style>
body{margin:0;}
.wrap{float:left;border:2px solid #000;}
.box{width:100px;height:100px;background:red;margin:0 100px;float:left; }
/*
IE6下的双边距BUG
12 在IE6下,块元素有浮动和横向margin的时候,横向的margin值会被放大成两倍
13
14 解决办法: display:inline;
*/
</style>
</head>
<body>
<div class="wrap">
<div class="box"></div>
</div>
</body>
</html>
以上方法是我在网页设计中总结出来并不断实践过的方法,希望能让浏览到这篇文章喜欢学习的兄弟姐妹受益!

 一:IE6、 7下IE67下li的4px间隙

 <!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<style>
.list{ width:300px;margin:0;padding:0;}
.list li{ list-style:none;height:30px;border:1px solid #000; font-size:12px; line-height:30px; vertical-align:top;}
.list a{float:left;}
.list span{float:right;}
/*
12 IE6,7下li的间隙
13
14 在IE6,7下li本身没浮动,但是li内容有浮动的时候,li下边就会产生几px的间隙
15
16 解决办法: 1.给li加浮动
17 2.给li加vertical-align:top;
18 */

</style>
</head>
<body>
<ul class="list">
<li>
<a href="#">文字文字文字文字文字</a>
<span>作者</span>
</li>
<li>
<a href="#">文字文字文字文字文字</a>
<span>作者</span>
</li>
<li>
<a href="#">文字文字文字文字文字</a>
<span>作者</span>
</li>
<li>
<a href="#">文字文字文字文字文字</a>
<span>作者</span>
</li>
</ul>
</body>
</html>

vertical-align 清除掉边距问题

三:IE6、 7下最小高度

   使用font-size:0;或overflow:hidden;

最新文章

  1. Debian 8 jessie, OpenSSH ssh connection server responded Algorithm negotiation failed
  2. HDU3371 最小生成树
  3. NHibernate系列文章二十七:NHibernate Mapping之Fluent Mapping基础(附程序下载)
  4. 学习OpenStack之(5):在Mac上部署Juno版本OpenStack 四节点环境
  5. 封印术:shadow dom
  6. C#集合实现接口一览表
  7. ActionController::InvalidAuthenticityToken 解决办法(第二种尤其有效)
  8. Python IDE Tools
  9. centos6安装PHP5.4
  10. RDB持久化
  11. lua 二维数组创建
  12. python爬虫入门(四)利用多线程爬虫
  13. 执行C#动态代码
  14. [WC2014]紫荆花之恋
  15. idea2017.3最新破解方法
  16. php 中 get_cfg_var() 与 ini_get() 的异同
  17. Centos6环境下CI(CodeIgniter)框架创建定时任务
  18. 创建docker镜像的私有仓库
  19. paxos ---学习笔记
  20. 无废话网页重构系列——(2)来套Web重构装备

热门文章

  1. HTTP协议之URL
  2. centOS 搭建pipelineDB docs
  3. 删除kafka的topic及kafka基本命令
  4. C语言递归实现二叉树(二叉链表)的三种遍历和销毁操作(实验)
  5. mysql数据库插入数据获取自增主键的三种方式(jdbc PreparedStatement方式、mybatis useGeneratedKeys方式、mybatis selectKey方式)
  6. [睡前灵感and发散思维]由一个简单的数组比较问题而想到的
  7. ps的快捷键
  8. ORA-16032: parameter LOG_ARCHIVE_DEST_3 destination string cannot be translated问题处理过程
  9. js原生的轮播,原理以及实践
  10. 《RabbitMQ Tutorial》译文 第 6 章 远程过程调用(RPC)