总结CSS中火狐浏览器与IE浏览器的兼容代码

总结CSS中火狐浏览器与IE浏览器的兼容代码,兼容你兼容主要是语法规范问题,你写CSS写规范了,就都兼容了,其他的就是一些浏览器的BUG了,发一些技巧给你看看,或许有用。
  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为
  #IamFloat{
  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> 放到 <body> 标签下,然后为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; //这句是关键}
  <div id="box">
  <div id="left"></div>
  <div id="right"></div>
  </div>

  7、IE捉迷藏的问题

  当div应用复杂的时候每个栏中又有一些链接,DIV等这个时候容易发生捉迷藏的问题。
  有些内容显示不出来,当鼠标选择这个区域是发现内容确实在页面。 解决办法:对#layout使用line-height属性 或者给#layout使用固定高和宽。页面结构尽量简单。

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后面做一个统一的背景,譬如:
  <div id=”page”>
  <div id=”left”></div>
  <div id=”center”></div>
  <div id=”right”></div>
  </div>
  比如我们要将page的背景设置成蓝色,以达到所有三栏的背景颜色是蓝色的目的,但是我们会发现随着left center right的向下拉长,而 page居然保存高度不变,问题来了,原因在于page不是float属性,而我们的page由于要居中,不能设置成float,所以我们应该这样解决
  <div id=”page”>
  <div id=”bg” style=”float:left;width:100%”>
  <div id=”left”></div>
  <div id=”center”></div>
  <div id=”right”></div>
  </div>
  </div>
  再嵌入一个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; //将对象作为块元素级的表格显示}

11、高度不适应

  高度不适应是当内层对象的高度发生变化时外层高度不能自动进行调节,特别是当内层对象使用margin 或paddign 时。
  例:
  #box {background-color:#eee; }
  #box p {margin-top: 20px;margin-bottom: 20px; text-align:center; }
  <div id="box">
  <p>p对象中的内容</p>
  </div>
  解决方法:在P对象上下各加2个空的div对象CSS代码:.1{height:0px;overflow:hidden;}或者为DIV加上border属性。

  12、IE6下为什么图片下有空隙产生

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

  13、如何对齐文本与文本输入框

  加上 vertical-align:middle;
  <style type="text/css">
  <!--
  input {
  width:200px;
  height:30px;
  border:1px solid red;
  vertical-align:middle;
  }
  -->
  </style>

  14、web标准中定义id与class有什么区别吗

  一.web标准中是不容许重复ID的,比如 div id="aa" 不容许重复2次,而class 定义的是类,理论上可以无限重复, 这样需要多次引用的定义便可以使用他.

  二.属性的优先级问题
  ID 的优先级要高于class,看上面的例子

  三.方便JS等客户端脚本,如果在页面中要对某个对象进行脚本操作,那么可以给他定义一个ID,否则只能利用遍历页面元素加上指定特定属性来找到它,这是相对浪费时间资源,远远不如一个ID来得简单。

15、LI中内容超过长度后以省略号显示的方法

  此方法适用与IE与OP浏览器

  <style type="text/css">
  <!--
  li {
  width:200px;
  white-space:nowrap;
  text-overflow:ellipsis;
  -o-text-overflow:ellipsis;
  overflow: hidden;
  }

  -->
  </style>

  16、为什么web标准中IE无法设置滚动条颜色了

  解决办法是将body换成html
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  <meta http-equiv="Content-Type" c />
  <style type="text/css">
  <!--
  html {
  scrollbar-face-color:#f6f6f6;
  scrollbar-highlight-color:#fff;
  scrollbar-shadow-color:#eeeeee;
  scrollbar-3dlight-color:#eeeeee;
  scrollbar-arrow-color:#000;
  scrollbar-track-color:#fff;
  scrollbar-darkshadow-color:#fff;
  }
  -->
  </style>

  17、为什么无法定义1px左右高度的容器

  IE6下这个问题是因为默认的行高造成的,解决的方法也有很多,例如:overflow:hidden | zoom:0.08 | line-height:1px

  18、怎么样才能让层显示在FLASH之上呢

  解决的办法是给FLASH设置透明
  <param name="wmode" value="transparent" />

  19、怎样使一个层垂直居中于浏览器中

  这里我们使用百分比绝对定位,与外补丁负值的方法,负值的大小为其自身宽度高度除以二
  <style type="text/css">
  <!--
  div {
  position:absolute;
  top:50%;
  lef:50%;
  margin:-100px 0 0 -100px;
  width:200px;
  height:200px;
  border:1px solid red;
  }
  -->
  </style>

时间: 2025-01-02 19:44:07

总结CSS中火狐浏览器与IE浏览器的兼容代码的相关文章

css中常用的ff,ie6,ie7样式兼容问题收集

现在大部分都是用!important来hack,对于ie6和firefox测试可以正常显示,但是ie7对!important可以正确解释,会导致 页面没按要求显示!找到一个针对IE7不错的hack方式就是使用"*+html",现在用IE7浏览一下,应该没有问题了现在写一个CSS可以这样:  代码如下 复制代码 #1 { color: #333; } /* Moz */ * html #1 { color: #666; } /* IE6 */ *+html #1 { color: #99

在 CSS 中使用特征查询

本文讲的是在 CSS 中使用特征查询, 原文地址:Using Feature Queries in CSS 原文作者:Jen Simmons 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:Cherry 校对者:LeviDing.H2O-2 在 CSS 中使用特征查询 CSS 中有一个你可能还没有听说过的工具.它很强大.它已经存在一段时间了.并且它很可能会成为你最喜欢的 CSS 新功能之一. 这就是 @supports 规则,也被称为 Feature

DIV+CSS中浏览器兼容方法及div+css的使用技巧

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 相信很多的朋友在div+css的页面制作当中都会遇到这个问题,由于IE系列浏览器对于HTML标签和CSS样式表的解释与其他浏览器会有所区别,所以在制作页面的时候经常会出现一些小BUG,和网页错位等现象,下面站长好站为大家讲解一写,在div+css中如何兼容各大浏览器. 首先我们先要检查相应的HTML标签,如果你的标签错误,无论你如何修改CSS

HTML和CSS中如何判断ie各版本浏览器

一.HTML代码中 在编写网页代码时,各种浏览器的兼容性是个必须考虑的问题,有些时候无法找到适合所有浏览器的写法,就只能写根据浏览器种类区别的代码,这时就要用到判断代码了.在HTML代码中,区别各种浏览器的代码如下,以ie6为例 <!--[if IE 6]>仅IE6可识别<![endif]--> <!--[if lte IE 6]> IE6及其以下版本可识别<![endif]--> <!--[if lt IE 6]> IE6以下版本可识别<

Css中常见的浏览器兼容性问题及解决方案

一.网页背景半透明 网页背景半透明  代码如下 复制代码 opacity:0.8; filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=80)";IE6中CSS方法解决PNG图片半透明问题: #DIVname {       width: 300px;       height: 99px;       background: url('images/top.png') no-repeat top;       *backgr

firefox火狐浏览器与ie浏览器在html代码编写时的差异

本文讲解了firefox火狐浏览器与ie浏览器在html代码编写时的差异,程序员有进行开发调试时,可按下面说到的HTML标签进行调试. 1.ul不同,ie下默认是margin留白,FF下默认是padding留白,所以要先用margin:0;padding:0;来实现兼容.2.给定高度后,当内容过多,真实高度大于给定高度时,两者不同还有呢? 在ff测试div+css的过程中发现不少问题,主要原因是代码的不规范书写. 1.居中问题div里的内容,ie默认为居中,而ff默认为左对齐.使ff内容居中的方

CSS实现兼容性的渐变背景(gradient)效果兼容众多浏览器

一.有点俗态的开场白 要是两年前,实现"兼容性的渐变效果"这个说法估计不会被提出来的,那个时 候,说起渐变背景,想到的多半是IE的渐变滤镜,其他浏览器尚未支持,但是,在对CSS3支持日趋完善的今天,实现兼容性的渐变背景效果已经完全成为可 能,本文就将展示如何实现兼容性的渐变背景效果.在众多的浏览器中,目前不支持Opera浏览器. 本文实例效果都是同样的效果,就是垂直渐变,起始颜色红色,结束颜色蓝色,结束的蓝色的透明度是0.5.  二.IE浏览器下的渐变背景 IE浏览器下渐变背景的使用需

stylesheet-bootstrap中的导航中java为何在360浏览器java下拉菜单点了没反应

问题描述 bootstrap中的导航中java为何在360浏览器java下拉菜单点了没反应 <!DOCTYPE html> Bootstrap 实例 - 带有下拉菜单的标签 带有下拉菜单的标签 Home SVN iOS VB.Net Java Swing jMeter EJB 分离的链接 PHP 以下是显示的图片 解决方案 电脑感染了360等非法流氓软件 解决方案二: 有可能是浏览器禁用了js--换个浏览器--比如谷歌火狐--

CSS Hack 汇总速查手册浏览器兼容必会_经验交流

屏蔽IE浏览器(也就是IE下不显示) 复制代码 代码如下: *:lang(zh) select {font:12px !important;} /*FF 可见,特别声明:由于Opera最新的更新,此句目前已经成为FF的专用HACK*/ select:empty {font:12px !important;} /*safari可见*/ 这里select是选择符,根据情况更换.第二句是MAC上safari浏览器独有的. 仅IE7识别 复制代码 代码如下: *+html {-} 当面临需要只针对IE7