e股脑电脑教程网
  • 首 页
  • 操作系统
  • 应用软件
  • 下载工具
  • 影音视频
  • 办公软件
  • 媒体制作
  • 网站建设
  • 平面设计
  • 数据库
  • 程序开发
  • 视频教程
编辑推荐: | 文章搜索:
您现在的位置: e股脑 >> 网站建设 >> Html·Css教程 >> 让CSS兼容IE和Firefox的技巧集合 >> 教程正文
 
教程搜索
 
 
相关教程
  • 让CSS兼容IE和Firefox的技巧集合
  • XHTML+CSS兼容性解决的五个方案
  • 建立可读性可维护性良好的CSS文件
  • DIV+CSS建立符合WEB标准网页的好处
  • XHTML+CSS网页制作问题解决的方式
  • 五彩缤纷建网页(4)背景与字体的搭配
  • 五彩缤纷建网页(3)色彩的象征
  • 精通 CSS 滤镜(四)
  • 精通 CSS 滤镜(三)
  • XHTML代码规范
  • 精通 CSS 滤镜(一)
  • 精通 CSS 滤镜(二)
  • CSS入门
  • 网站首页head区代码规范
  • CSS2盒模型的3D示意图
  • 增强网站的可访问性
 
 

图文教程


  • 高清小技巧 教你截出满意的图片

  • 禁用Firefox3地址栏的下拉菜单

  • Word2007寻找丢失的自动图文集

  • 140个绝对值得收藏的电脑技巧(上)

  • 打开Win 7预测试版中的隐藏功能
 
 
赞 助 商
 
 
让CSS兼容IE和Firefox的技巧集合
  • 来源:e股脑
  • 点击次数:
  • 更新时间:2008-11-14

  CSS对浏览器的兼容性有时让人很头疼,或许当你了解当中的技巧跟原理,就会觉得也不是难事,从网上收集了IE7,6与Fireofx的兼容性处理方法并整理了一下。对于web2.0的过度,请尽量用xhtml格式写代码,而且DOCTYPE 影响 CSS 处理,作为W3C的标准,一定要加 DOCTYPE声明。

  CSS技巧

  1.div的垂直居中问题

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

  2. margin加倍的问题

  设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。解决方案是在这个div里面加上display:inline;

  例如:

  <#div id=”imfloat”>

  相应的css为

  #imfloat{

  float:left;

  margin:5px;/*IE下理解为10px*/

  display:inline;/*IE下再理解为5px*/}

  3.浮动ie产生的双倍距离

  #box{ float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产生200px的距离 display:inline; //使浮动忽略}

  这里细说一下block与inline两个元素:block元素的特点是,总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是,和其他元素在同一行上,不可控制(内嵌元素);

  #box{ display:block; //可以为内嵌元素模拟为块元素 display:inline; //实现同一行排列的效果 diplay:table;

  4 IE与宽度和高度的问题

  IE不认得min-这个定义,但实际上它把正常的width和height当作有min的情况来使。这样问题就大了,如果只用宽度和高度,正常的浏览器里这两个值就不会变,如果只用min-width和min-height的话,IE下面根本等于没有设置宽度和高度。

  比如要设置背景图片,这个宽度是比较重要的。要解决这个问题,可以这样:

  #box{ width: 80px; height: 35px;}html>body #box{ width: auto; height: auto; min-width: 80px; min-height: 35px;}

  5.页面的最小宽度

  min-width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但IE不认得这个,而它实际上把 width当做最小宽度来使。为了让这一命令在IE上也能用,可以把一个

放到 标签下,然后为div指定一个类,然后CSS这样设计:

  #container{ min-width: 600px; width:expression(document.body.clientWidth < 600? "600px": "auto" );}

  第一个min-width是正常的;但第2行的width使用了Javascript,这只有IE才认得,这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。

  6.DIV浮动IE文本产生3象素的bug

  左边对象浮动,右边采用外补丁的左边距来定位,右边对象内的文本会离左边有3px的间距.

  #box{ float:left; width:800px;}

  #left{ float:left; width:50%;}

  #right{ width:50%;}

  *html #left{ margin-right:-3px; //这句是关键}

  

  

  

  

  7.IE捉迷藏的问题

  当div应用复杂的时候每个栏中又有一些链接,DIV等这个时候容易发生捉迷藏的问题。

  有些8.float的div闭合;清除浮动;自适应高度;

  ①例如:<#div id=”floatA” ><#div id=”floatB” ><#div id=”NOTfloatC” >这里的NOTfloatC并不希望继续平移,而是希望往下排。(其中floatA、floatB的属性已经设置为float:left;)

  这段代码在IE中毫无问题,问题出在FF。原因是NOTfloatC并非float标签,必须将float标签闭合。在 <#div class=”floatB”> <#div class=”NOTfloatC”>之间加上 <#div class=”clear”>这个div一定要注意位置,而且必须与两个具有float属性的div同级,之间不能存在嵌套关系,否则会产生异常。并且将clear这种样式定义为为如下即可: .clear{ clear:both;}

  ②作为外部 wrapper 的 div 不要定死高度,为了让高度能自动适应,要在wrapper里面加上overflow:hidden; 当包含float的box的时候,高度自动适应在IE下无效,这时候应该触发IE的layout私有属性(万恶的IE啊!)用zoom:1;可以做到,这样就达到了兼容。

  例如某一个wrapper如下定义:

  .colwrapper{ overflow:hidden; zoom:1; margin:5px auto;}

  ③对于排版,我们用得最多的css描述可能就是float:left.有的时候我们需要在n栏的float div后面做一个统一的背景,譬如:

  

  

  

  

  

  比如我们要将page的背景设置成蓝色,以达到所有三栏的背景颜色是蓝色的目的,但是我们会发现随着left center right的向下拉长,而page居然保存高度不变,问题来了,原因在于page不是float属性,而我们的page由于要居中,不能设置成 float,所以我们应该这样解决

  

  

  

  

  

  

  

  再嵌入一个float left而宽度是100%的DIV解决之

  ④万能float 闭合(非常重要!)

  关于 clear float 的原理可参见 [How To Clear Floats Without Structural Markup],将以下代码加入Global CSS 中,给需要闭合的div加上 class="clearfix" 即可,屡试不爽.

  /* Clear Fix */

  .clearfix:after { content:"."; display:block; height:0; clear:both; visibility:hidden; }

  .clearfix { display:inline-block; }

  /* Hide from IE Mac */

  .clearfix {display:block;}

  /* End hide from IE Mac */

  /* end of clearfix */

  或者这样设置:.hackbox{ display:table; //将对象作为块元素级的表格显示}

  9.高度不适应

  高度不适应是当内层对象的高度发生变化时外层高度不能自动进行调节,特别是当内层对象使用margin 或paddign 时。

  例:

  #box {background-color:#eee; }

  #box p {margin-top: 20px;margin-bottom: 20px; text-align:center; }

  

  

p对象中的内容

  

  解决方法:在P对象上下各加2个空的div对象CSS代码:.1{height:0px;overflow:hidden;}或者为DIV加上border属性。

  10 .IE6下为什么图片下有空隙产生

  解决这个BUG的方法也有很多,可以是改变html的排版,或者设置img 为display:block 或者设置vertical-align 属性为vertical-align:top   bottom  middle  text-bottom 都可以解决.

  11.如何对齐文本与文本输入框

  加上 vertical-align:middle;

  

  12.web标准中定义id与class有什么区别吗

  一.web标准中是不容许重复ID的,比如 div id="aa" 不容许重复

1 2 3 下一页
  • 上一篇教程: XHTML+CSS兼容性解决的五个方案
  • 下一篇教程: 没有了
  •  

    关于本站 | 广告联系 | 版权声明 | 使用帮助

    Copyright © 2004-2008 www.egunao.com All rights reserved.