一,如何解决IE7和IE8的BUG

微软在IE8提供三种解析页面的模式
  IE8 Standard Modes :默认的最标准的模式,严格按照W3C相关规定
  IE7 Standards Modes :IE7现在用的解析网页的模式,开起机关是在<head>中加入 <meta http-equiv="X-UA-Compatible" content="IE=7">
  Quirks Modes :IE5用的解析网页的模式,开起机关是删除HTML顶部的DOCTYPE声明
  注意:不同模式间的网页在IE8中可以互相 frame ,因此因不会模式下的DOM和CSS渲染不一样,所以会引发很多问题,务必注意如果你的页面对IE7兼容没有问题,又不想大量修改现有代码,同时又能在 IE8中正常使用,微软声称,开发商仅需要在目前兼容IE7的网站上添加一行代码即可解决问题,此代码如下:

<meta http-equiv="x-ua-compatible" content="ie=7" />
  IE8 最新css hack:

  "/9" 例:"margin:0px auto/9;".这里的"/9"可以区别所有IE和FireFox.
  "*" IE6、IE7可以识别.IE8、FireFox不能.
  "_" IE6可以识别"_",IE7、IE8、FireFox不能.

二,css网页布局兼容性有哪些要点与诀窍?

IE vs FF

CSS 兼容要点:DOCTYPE 影响 CSS 处理

FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行

FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中

FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width

FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式

div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行

cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以

FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格XHTML+CSS兼容性解决方案小集

使用XHTML+CSS构架好处不少,但也确实存在一些问题,不论是因为使用不熟练还是思路不清晰,我就先把一些我遇到的问题写在下面。

1.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法:

div{margin:30px!important;margin:28px;}
注意这两个margin的顺序一定不能写反,据阿捷的说法!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样:

div{maring:30px;margin:28px}
重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx!important;

2.IE5 和IE6的BOX解释不一致IE5下div{width:300px;margin:0 10px 0 10px;}div的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px,而在IE6和其他浏览器上宽度则 是以300px+10px(右填充)+10px(左填充)=320px来计算的。这时我们可以做如下修改:

div{width:300px!important;width /**/:340px;margin:0 10px 0 10px}
关于这个/**/是什么我也不太明白,只知道IE5和firefox都支持但IE6不支持,如果有人理解的话,请告诉我一声,谢了!:)

3.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义

ul{margin:0;padding:0;}
就能解决大部分问题

4.关于脚本,在xhtml1.1中不支持language属性,只需要把代码改为

<script type="text/javascript">
就可以了

三,兼容IE5.0、IE5.5、IE6.0、IE7.0、FF1.5、FF2.0的css hack

本CSS Hack代码范例,可以直观显示各个版本浏览器hack的使用。兼容IE5.0、IE5.5、IE6.0、IE7.0、FF1.5、FF2.0。

  IE7.0简体中文正式版发布了,对于我等常和网页打交道的人来说网页兼容性问题也随之而来了。IE7.0有一个显著的改变就是支 持!important了,是件好事情,但是也给广大的在IE6时代使用!important来区分处理IE和FF的网页制作者带来了不少问 题,Noker也遇到了这个问题,所以翻阅网上资料,写了下面这个能够兼容现今大多数主流浏览器,覆盖绝大多数用户的Hack代码!

  兼容浏览器版本:IE5.0,IE5.5,IE6.0,IE7.0,Firefox1.5,FireFox2.0

  CSS代码:(请注意Hack代码的顺序)

#test{
width:300px;
height:100px;
background:#DDD!important;/*FF*/
background:#FF0;/*IE5.0*/
}
#test/*IE5.5+*/{
*+background:#C0F!important;/*IE7.0*/
*background:#F00;/*IE6.0*/
*background /*IE5.5*/:#F90;
}

各浏览器下的测试截图如下:

四,CSS兼容方案 最新的一些技巧
让你的样式完美兼容各大浏览器,这个方案主要是用来解决Safari的,Opear是在测试的时候顺带试了一下,结果发现竟然也行,所以顺便也解决了。

.e {/*FF OP*/
background-color: #FF0000
}
html* .e{/*Sa IE7 OP*/
background-color:#FF00FF
}
*+html .e{
background-color:#000000;/*OP*/
*background-color:#0000FF;/*IE7*/
}
* html .e{/*IE6*/
background-color:#00FFFF
}
  经FF2、OP9.21、OP9.10、Sa3.0.3(pc)、IE7、IE6测试通过,如果你在其他的浏览器版本上测试过,欢迎给我留言,把结果告诉我。

  需要注意的是:IE7对样式的解释跟DTD是有关,在没有DTD的时候,IE7是能读取IE6的hack的。

五,必须掌握的关于IE6、IE7和FF最简单的CSS hack技巧

FF浏览器

.test{
    height:20px;
    background-color:orange;
}
IE7浏览器

*+html .test{/*IE7*/
    height:20px;
    background-color:blue;
}
IE6浏览器

*html .test{/*IE6*/
    height:20px;
    background-color:black;
}
  通过上面的CSS代码可以看出FF还是最听话的浏览器。
  在IE6和IE7如果要使用HACK必须要在前面加上夫级标签html。
  这里就很好记忆了,IE6加*html,而IE7加*+html,暗示加了一个版本。
  通过对class、id所做的CSS HACK好处在于不用顾及前后顺序,而且便于管理和其他人员接受,
  还可以通过这种HACK实现类似JS浏览器版本的控制。
                   
  上面内容看完可以点击下面的效果在不同浏览器来看看效果,
  其中橙色代表FF,蓝色代表IE7,黑色代表IE6。

六,CSS hacks:浏览器特定选择器介绍

IE6以下

*html{}
IE 7 以下

*:first-child+html {} * html {}
只对IE 7

*:first-child+html {}
只对IE 7 和现代浏览器

html>body {}
只对现代浏览器(非IE 7)

html>/**/body {}
最新的Opera 9以下版本

html:first-child {}
Safari

html[xmlns*=”"] body:last-child {}
要使用这些选择器,请在样式前写下这些代码。例如:

#content-box {
width: 300px;
height: 150px;
}
* html #content-box {
width: 250px;
}
/* 重写上面的代码并且把宽度改为250PX
在IE6以下版本中适用。 */

七,CSS Hack技术速查对照

*:lang(zh) select {font:12px  !important;} /*FF,OP可见*/
select:empty {font:12px  !important;} /*safari可见*/
这里select是选择符,根据情况更换。第二句是MAC上safari浏览器独有的。
仅IE7识别
 
*+html  {…}
当面临需要只针对IE7做样式的时候就可以采用这个HACK。
IE6及IE6以下识别
 
* html  {…}
这个地方要特别注意很多地主都写了是IE6的HACK其实IE5.x同样可以识别这个HACK。其它浏览器不识别。
html/**/ >body  select {…}
这句与上一句的作用相同。
仅IE6不识别,屏蔽IE6
 
select { display /*屏蔽IE6*/:none;}
这里主要是通过CSS注释分开一个属性与值,注释在冒号前。
仅IE6与IE5不识别,屏蔽IE6与IE5
 
select/**/ { display /*IE6,IE5不识别*/:none;}
这里与上面一句不同的是在选择符与花括号之间多了一个CSS注释。不屏蔽IE5.5
仅IE5不识别,屏蔽IE5
 
select/*IE5不识别*/ {…}
这一句是在上一句中去掉了属性区的注释。只有IE5不识别,IE5.5可以识别。
盒模型解决方法
 
selct {width:IE5.x宽度; voice-family :"/"}/""; voice-family:inherit; width:正确宽度;}
盒模型的清除方法不是通过!important来处理的。这点要明确。
清除浮动
 
select:after {content:"."; display:block; height:0; clear:both; visibility:hidden;}
在Firefox中,当子级都为浮动时,那么父级的高度就无法完全的包住整个子级,那么这时用这个清除浮动的HACK来对父级做一次定义,那么就可以解决这个问题。
截字省略号
 
select { -o-text-overflow:ellipsis; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; }
这个是在越出长度后会自行的截掉多出部分的文字,并以省略号结尾,很好的一个技术。只是目前Firefox并不支持。
只有Opera识别
 
@media all and (min-width: 0px){ select {……} }
针对Opera浏览器做单独的设定。
  以上都是写CSS中的一些HACK,这些都是用来解决局部的兼容性问题,如果希望把兼容性的内容也分离出来,不妨试一下下面的几种过滤器。这些过滤器有的是写在CSS中通过过滤器导入特别的样式,也有的是写在HTML中的通过条件来链接或是导入需要的补丁样式。

IE5.x的过滤器,只有IE5.x可见
 
@media tty {
i{content:"/";/*" "*/}} @import 'ie5win.css'; /*";}
}/* */
IE5/MAC的过滤器,一般用不着
 
/*/*//*/
    @import "ie5mac.css";
/**/
IE的if条件Hack
 
<!--[if IE]> Only IE <![endif]-->
所有的IE可识别
<!--[if IE 5.0]> Only IE 5.0 <![endif]-->
只有IE5.0可以识别
<!--[if gt IE 5.0]> Only IE 5.0+ <![endif]-->
IE5.0包换IE5.5都可以识别
<!--[if lt IE 6]> Only IE 6- <![endif]-->
仅IE6可识别
<!--[if gte IE 6]> Only IE 6/+ <![endif]-->
IE6以及IE6以下的IE5.x都可识别
<!--[if lte IE 7]> Only IE 7/- <![endif]-->
仅IE7可识别
  以上内容可能并不全面,欢迎大家能和我一起把这些技巧都汇总起来,为以后工作的查询提供一个方便,同时在这里感谢那些研究出这些HACK的作者们。

八,解决XHTML+CSS兼容性的五个方案!

 使用XHTML+CSS构架好处不少,但也确实存在一些问题,不论是因为使用不熟练还是思路不清晰,我就先把一些我遇到的问题写在下面,省的大家四处找。

  1.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法:

  div{margin:30px!important;margin:28px;}

  注意这两个margin的顺序一定不能写反,据阿捷的说法!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样:

  div{maring:30px;margin:28px}

  重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx!important;

  2.IE5和IE6的BOX解释不一致IE5下div{width:300px;margin:0 10px 0 10px;}div的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px,而在IE6和其他浏览器上宽度则 是以300px+10px(右填充)+10px(左填充)=320px来计算的。这时我们可以做如下修改:

  div{width:300px!important;width /**/:340px;margin:0 10px 0 10px}

  关于这个/**/是什么我也不太明白,只知道IE5和firefox都支持但IE6不支持,如果有人理解的话,请告诉我一声,谢了!:)

  3.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义:

  ul{margin:0;padding:0;}

  就能解决大部分问题。

  4.关于脚本,在xhtml1.1中不支持language属性,只需要把代码改为:

  就可以了。

  5.如果你在BOX容器里使float和text-align的方向设为一致:

  {float:left;text-align:left;margin:0 0 0 200px;}

  我们可做如下修改:

{float:left;text-align:left;margin:0 0 0 200px;display:inline;}

网页布局的兼容性问题汇总相关推荐

  1. Web开发(一)·期末不挂之第六章·网页布局(浮动定位)

    网页布局 一.网页布局发展 二. float 三.position 属性值 static:默认值 relative: absolute fixed 堆叠顺序 z-index 一.网页布局发展 原先:用 ...

  2. Web网页布局的主要方式

    一.静态布局(static layout) 即传统Web设计,网页上的所有元素的尺寸一律使用px作为单位. 1.布局特点 不管浏览器尺寸具体是多少,网页布局始终按照最初写代码时的布局来显示.常规的pc ...

  3. jpanel网格布局添加滚动条_啥是前端开发工程师必会的5种网页布局方式?

    作为前端开发工程师,布局方式有多种,针对不同的情况有不一样的处理,但是很多初学的同学都不知道这些情况,那么我们今天就来说说,那些前端开发工程师不可不知的5种布局方式! 一.静态布局(static la ...

  4. Web网页布局的主要方式 1

    一.静态布局(static layout) 即传统Web设计,网页上的所有元素的尺寸一律使用px作为单位. 1.布局特点 不管浏览器尺寸具体是多少,网页布局始终按照最初写代码时的布局来显示.常规的pc ...

  5. 啥是前端开发工程师必会的5种网页布局方法?

    作为前端开发工程师,布局方式有多种,针对不同的情况有不一样的处理,但是很多初学的同学都不知道这些情况,那么我们今天就来说说,那些前端开发工程师不可不知的5种布局方式! 一.静态布局(static la ...

  6. web前端开发工程师必会的5种网页布局方法?

    作为前端开发工程师,布局方式有多种,针对不同的情况有不一样的处理,但是很多初学的同学都不知道这些情况,那么我们今天就来说说,那些前端开发工程师不可不知的5种布局方式! 一.静态布局(static la ...

  7. IE和Firefox浏览器CSS网页布局不同点

    CSS网页布局,最令大家头疼的问题就是浏览器兼容性,虽然webjx.com介绍过很多这方向的 知识,但依然让很多开发人员晕头转向,今天的这篇文章,将列出css和javascript在IE和Firefo ...

  8. Flex布局搭建网页布局更方便

    阮一峰的网络日志 » 首页 » 档案 上一篇:ES6 的功能侦测库 下一篇:Flex 布局教程:实 分类: 开发者手册 Flex 布局教程:语法篇 作者: 阮一峰 日期: 2015年7月10日 网页布 ...

  9. 怎样让dw的html表格移动,妙用dw图层与表格进行网页布局-网页设计,Dreamweaver

    使用图层可以像素为单位精确定位页面元素,并且可以将层放置在页面的任意位置.当把页面元素放入图层之中时,还可以控制哪个显示在前面.哪个显示在后面.哪个显示.哪个隐藏,可见,层的优点是很明显的.但是目前浏 ...

最新文章

  1. linux sw状态,linux 下查看性能状态命令
  2. 在EXCEL中怎么将多个CSV文件合并成一个文件
  3. 连州技工学校学计算机要交多少学费,技校学费一年大约需要多少
  4. JavaScript-浅谈DOM事件流
  5. SQL 常用语句大全
  6. (java)五大常用算法
  7. jsp mysql新闻管理系统_基于jsp实现新闻管理系统 附完整源码
  8. 微信小程序+springboot+shiro实现登录
  9. DSP原理及图像处理应用
  10. janusgraph 引入 java,janusgraph 默认server使用手记
  11. 近中期3D编程研究目标
  12. Linux-shell篇之while用法
  13. 操作系统与裸机的区别
  14. 搭建太阳系可视化系统,带你探索宇宙的未知奥秘
  15. 实体与实体之间的联系
  16. rss 是什么?有什么用?
  17. 初步认识C语言中的选择和循环语句
  18. Cmd 移动文件夹及文件
  19. 分布式计算原理之分布式协调与同步(1)——分布式事务
  20. C++ QT有道翻译 爬虫 分析 破解

热门文章

  1. 卷积神经网络CNN5
  2. 多项式回归 Polynomial Regression
  3. 系统提示某些DLL为“无效的windows映象”问题详解
  4. Mapmap MadMapper ResolumeArena投影软件概述
  5. easy ui 之layout布局 用法小结(1)
  6. H5 移动端 测试方法
  7. 产品经理硬技能——绘制用户旅程图
  8. 网络游戏战斗系统之buff系统具体设计实现
  9. 管理标准主流CMMI,ITIL
  10. java 判断是不是奇数_很火的Java题——判断一个整数是否是奇数