代码驿站移动版
频道导航
HTML/Xhtml
CSS
JavaScript
HTML5
PHP教程
ASP.NET
正则表达式
AJAX
ThinkPHP
Yii
MySQL
MariaDB
Oracle
MongoDB
Redis
DedeCMS
PHPCMS
帝国CMS
WordPress
Discuz
其它CMS
Zend Studio
Sublime
Notepad
Dreamweaver
Windows
Linux
Nginx
Apache
IIS
CentOS
Ubuntu
Debian
网站优化
工具资源
PHP源码
ASP.NET源码
其它源码
图标素材
按钮素材
字体素材
DedeCMS模板
帝国CMS模板
PHPCMS模板
WordPress模板
Discuz!模板
单页模板
开发软件下载
服务器软件下载
广告投放
联系我们
版权申明
软件编程
网页前端
移动开发
数据库
服务器
脚本语言
PHP代码
JAVA代码
Python代码
Android代码
当前位置:
主页
>
网页前端
>
HTML代码
>
IE 5.x/Win 和模型bug
时间:2020-12-25 12:22:05 | 栏目:
HTML代码
| 点击:次
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>IEbug</title> <style type="text/css"> <!-- /*default CSS*/ body{ text-align:center; font:12px/120% "Courier New", Courier, monospace; color:#000;} code{font-family: "Courier New", Courier, monospace; border:1px solid #f60; display:block; padding:8px; margin:3px; background:#fff;} span.alt{ color:#c00; font-weight:bold;} acronym {cursor: help; font-weight:bold; border-bottom:1px #f90 dashed; color:#c00;} a{ color:#0099CC; text-decoration:none;} a:hover{ color:#333333; text-decoration:underline;} #bug1,#bug2,#bug3{ margin-left:auto; margin-right:auto; width:780px; margin-bottom:10px; position:relative;} #bug1 div,bug2 div,bug3 div{text-align:left;} .wrap{width:500px;width /**/:530px; border:10px #f60 solid; padding:10px; margin:10px auto;} html>body .wrap{ width:500px;} .wrap *{text-align:left;} /* clear float*/ .clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } .clearfix {display: inline-table;} /* Hides from IE-mac \*/ .clearfix {height: 1%;} .clearfix {display: block;} /* End hide from IE-mac */ .clear{ clear:both;} /*bug1*/ #bug1{} .bugTitle{ position:absolute; left:0px; top:0px; width:100px; font:18px "Courier New", Courier, monospace; font-weight:bold;padding:5px; background:#f5f5f5;} #boxbug{ width:500px;width /**/:530px; border:10px #f60 solid; margin:10px auto; padding:10px;} #boxbugie6{ width:500px; border:10px #f60 solid; margin:10px auto; padding:10px;} html>body #boxbugie6{ width:500px;} html>body #boxbug{ width:500px;} /*bug2*/ #bug2{} #ie3px,#ieno3px{float: left; width: 100px; height: auto; min-height:50px; background: #f60;} p.ie3px,p.no3px{margin: 0 0 0 100px; background: #333; text-align:left; color:#fff;} * html #ieno3px{margin-right:-3px;} * html p.no3px{height:1%;margin-left: 0;} /*bug3*/ #bug3{} #box1,#box2{ margin-left:50px; float:left; background:#f60; width:200px;} #box2{ /*float:none;*/display:inline ;} --> </style> </head> <body> <div id="bug1" class="clearfix"> <a name="bug1"></a> <div class="bugTitle">IE 5.x/Win 和模型bug</div> <div id="boxbug" title="box bug for IE5.x">这里是一个width:500px;margin:10px;padding:10px; border:10px;的一个盒子.使用widht(空格)/**/:530px,解决IE5.x系列的盒解析bug,因为IE5.x系列浏览器能读到这句.在IE5.x Win,IE6.0 Win下效果一致.<b>如何使用hack解决IE5.x盒解析bug?</b> <code>#content { width:530px; //这个是错误的width,所有浏览器都读到了 voice-family: "\"}\""; //IE5.X/win忽略了<span class="alt">"\"}\""</span>后的内容 voice-family:inherit; width:500px; //包括IE6/win在内的部分浏览器读到这句,新的数值(300px)覆盖掉了旧的 } html>body #content { //<span class="alt">html>body</span>是CSS2的写法 width:500px; //支持CSS2该写法的浏览器有幸读到了这一句,IE 5.x不支持的。 } </code> <code>#content { width:500px !important; //这个是正确的width,大部分支持!important标记的浏览器使用这里的数值 width(空格)/**/:530px; //IE6/win不解析这句,所以IE6/win仍然认为width的值是300px;而IE5.X/win读到这句,新的数值(400px)覆盖掉了旧的,因为!important标记对他们不起作用 } html>body #content { //<span class="alt">html>body</span>是CSS2的写法 width:500px; //支持CSS2该写法的浏览器有幸读到了这一句 } </code> <code><!--[if Lte IE6]> #content { width:530px } <[!endif]--> </code> </div> <div id="boxbugie6">这里是一个width:500px;margin:10px;padding:10px; border:10px;的一个盒子,IE5.x Win解析不正常。IE6盒模型在向后兼容的同时也包容了以前的错误,IE6其实有两个核心,在旧的页面前他仍旧表现出对错误的宽容,只有在文档中严格地加上文档类型(<acronym>DOCTYPE</acronym>)声明,IE6才能够接受正确的box-model所以,hack必须和正确的DOCTYPE同时包含在文档中才能够正常工作。</div> </div> <div id="bug2" class="clearfix"> <a name="bud2"></a> <div class="bugTitle">IE/div浮动文本出现3px间距的bug</div> <div class="wrap clearfix"> <div id="ie3px"> <p>这里是浮动box</p> <p> </p> <p> </p> </div> <p class="ie3px">左边对象是浮动的,这里是采用margin-left来定位,这里的文本会离左边有3px的空白误差。</p> </div> <div class="wrap clearfix"> <div id="ieno3px">这里是浮动box,使用了<span class="alt">* html #floatbox2 {margin-right: -3px;}</span>解决3px bug</div> <p class="no3px">左边对象是浮动的,这里是采用<span class="alt">* html p.no3px{height:1%;margin-left: 0;}</span>,这里的文本会离左边没有了3px的空白误差。</p> </div> <div class="wrap"> <p><strong>IE/div浮动文本出现3px间距的bug产生的条件:</strong> 当左边对象是浮动的,右边对象采用外补丁的左边距(margin-left:?px;)来定位,则右边对象内的文本会离左边有3px的空白误差。 </p> <strong>CSS:</strong> <code>#ie3px{float: left; width: 100px; height: 50px; background: #f60;}/*左边对象浮动*/ p.ie3px{margin: 0 0 0 100px; background: #333; text-align:left; color:#fff;}/*右边margin-left:??px;*/ </code> <strong>XHTML:</strong> <code><div id="ie3px">这里是浮动box</div> <p class="ie3px">左边对象是浮动的,这里是采用margin-left来定位,这里的文本会离左边有3px的空白误差。</p> </code> <p><strong>IE/div浮动文本出现3px间距的bug解决方法:</strong> 利用hack <span class="alt">*html div{}</span>为IE单独写一个样式</p> <code>* html #ieno3px{margin-right:-3px;} * html p.no3px{height:1%;margin-left: 0;}</code> <strong>CSS:</strong> <code>#ieno3px{float: left; width: 100px; height: 50px; background: #f60;} p.no3px{margin: 0 0 0 100px; background: #333; text-align:left; color:#fff;} * html #ieno3px{margin-right:-3px;} * html p.no3px{height:1%;margin-left: 0;}</code> <strong>XHTML:</strong> <code><div id="ieno3px">这里是浮动box,使用了<span class="alt">* html #floatbox2 {margin-right: -3px;}</span>解决3px bug</div> <p class="no3px">左边对象是浮动的,这里是采用<span class="alt">* html p.no3px{height:1%;margin-left: 0;}</span>,这里的文本会离左边没有了3px的空白误差。</p></code> </div> </div> <div id="bug3"> <a name="bug3"></a> <div class="bugTitle">IE/浮动对象外补丁的双倍距离</div> <div class="wrap clearfix"> <div id="box1">这个元素,浮动左对齐(float:left),左侧外补丁(margin-left:50px;),在wrap层内,但在IE浏览器中Box1离左边的距离会是100px,而实际距离应是50px。当一个元素用于非float:none;的浮动状态时,IE下该元素既被视为块级元素,display:block; </div> <div class="clear"> CSS: <code>#box1{ margin-left:50px; float:left; background:#f60; width:200px;}</code> XHTML: <code><div class="wrap"> <div id="box1">这个元素,浮动左对齐(float:left),左侧外补丁(margin-left:50px;),在wrap层内,但在IE浏览器中Box1离左边的距离会是100px,而实际距离应是50px。当一个元素用于非float:none;的浮动状态时,IE下该元素既被视为块级元素,display:block; </div> </div></code> </div> </div> <div class="wrap clearfix"> <div id="box2">这是个拥有正确margin-left的元素,解决的办法就是,使浮动效果消失,这里采用了display:inline;原理可参阅<a href="http://old9.blogsome.com/2006/04/11/onhavinglayout/">on having layout</a>。</div> <div class="clear"> CSS: <code>#box2{ margin-left:50px; float:left; background:#f60; width:200px; display:inline ;} </code> XHTML: <code><div class="wrap"> <div id="box2">这是个拥有正确margin-left的元素,解决的办法就是,使浮动效果消失,这里采用了display:inline;原理可参阅<a href="http://old9.blogsome.com/2006/04/11/onhavinglayout/">on having layout</a>。</div> </div></code> </div> </div> </div> </body> </html>
[Ctrl+A 全选 注:
引入外部Js需再刷新一下页面才能执行
]
您可能感兴趣的文章:
CSS hack实现 CSS完美兼容IE6/IE7/FF的通用方法
用CSS控制的闪烁效果
css不用图片美化按钮
兼容多浏览器实现半透明(Opera ie firefox)
什么是XHTML?
相关文章
11-12
用CSS给图片打标的代码
10-07
iframe背景透明的设置方法
11-03
怎么改善现有网站
12-03
不要使用CSS Expression的原因分析
11-18
CSS Hack 汇总快查
JQuery
VUE
AngularJS
MSSql
MySQL
MongoDB
Redis
Linux
Tomcat
Nginx
网站首页
广告投放
联系我们
版权申明
联系站长