首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

急高手请帮忙,IE和firefox兼容有关问题

2012-03-27 
急,高手请帮忙,IE和firefox兼容问题,这里是代码,兼容效果在http://www.giftour.com/test/1.html可以看到!

急,高手请帮忙,IE和firefox兼容问题,
这里是代码,兼容效果在http://www.giftour.com/test/1.html可以看到 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title> 无标题文档 </title> 
</head> 
<style type="text/css">  
<!--  
*{padding:0;margin:0}  
#smallbox{border:1px #ffffff solid;float:left;width:0;height:0;overflow:hidden}  
#bigbox{border:1px #ccc solid;width:0px;height:0px;background:url(images/2.jpg) no-repeat;}  
#view{border:1px #ccc solid;width:0px;height:0px;position:absolute}  
-->  
</style>  
<script language="JavaScript">  
<!--  
var srcX = 2000;  
var srcY = 2000;  
var bigX = 290;  
var bigY = 290;  
var smallX = 290; 
var smallY = 290;  
var viewX = bigX / srcX * smallX;  
var viewY = bigY / srcY * smallY;  
var bl = srcX / smallX; 
var border = 1; 
window.onload=function (){  
  bigbox.style.borderWidth=border;  
  bigbox.style.width=bigX+border*2;  
  bigbox.style.height=bigY+border*2;  
  smallpic.width=smallX;  
  smallpic.height=smallY;  
  view.style.width=viewX;  
  view.style.height=viewY;  
  smallbox.style.borderWidth=border;  
  if (window.event){  
  smallbox.style.width=smallpic.offsetWidth+border*2;  
  smallbox.style.height=smallpic.offsetHeight+border*2;  
  }else{  
  smallbox.style.width=smallpic.offsetWidth;  
  smallbox.style.height=smallpic.offsetHeight;  
  }  
  move(event);  
}  
function move(e){  
var e = window.event?window.event:e;  
var iebug = 0;  
if (window.event){  
var vX = e.offsetX - viewX/2;  
var vY = e.offsetY - viewY/2;  
}else{  
var vX = e.pageX - viewX/2 - smallbox.offsetLeft - border;  
var vY = e.pageY - viewY/2 - smallbox.offsetTop - border;  
iebug = 2;  
}  
if (vX < 0) vX = 0;  
if (vY < 0) vY = 0;  
if (vX > smallX - viewX - iebug) vX = smallX - viewX - iebug;  
if (vY > smallY - viewY - iebug) vY = smallY - viewY - iebug;  
view.style.left = vX + smallbox.offsetLeft + border;  
view.style.top = vY + smallbox.offsetTop + border;  
bigbox.style.backgroundPosition= - vX * bl + " " + -vY * bl;  
}  
function otherImages(images290,images2000) 

var obj290 = document.getElementById('smallpic'); 
obj290.src=images290; 
bigbox.style.background="url("+images2000+")"; 

displayDIV(''); 
function displayDIV(viewStyle) 

bigbox.style.display=viewStyle; 
view.style.display=viewStyle; 

//-->  


</script>  
<body> 
<div id="smallbox"> <img id="smallpic" src="images/1.jpg" border="0" onmousemove="move(event)" onmouseover="displayDIV('')" onmouseout="displayDIV('none')" /> </div> 
<div id="bigbox"> </div> 
<div> <img src="images/1.jpg" width="120" height="120" align="left" onmousemove="otherImages('images/1.jpg','images/2.jpg')" /> <img src="images/“抽”出一本书烟灰缸2_120X120.jpg" onmousemove="otherImages('images/“抽”出一本书烟灰缸2_290X290.jpg','images/“抽”出一本书烟灰缸2_2000X2000.jpg')" /> </div> 
<div id="view"> </div>  
</body> 
</html> 
IE下正常,FIREFOX下不能正常显示

[解决办法]
你这个在ie下也是错误一堆啊
[解决办法]
怎么会这样?
[解决办法]
firefox 不能用元件的 ID 直接引用,要用document.getElementById('');

bigbox.style.borderWidth=border;

应该改完

var bigbox = document.getElementById('bigbox');
bigbox.style['borderWidth'] = border;
[解决办法]
1: ID用于标识页面单独元素以及持久行的结构性元素 方便JS的调用 

  类用于标识同一页面可重复定义使用的结构性元素 ID与类的命名需与表现形式无关 :leftContent 而使用有意义的定义方式:sideBar等等。命名方式遵循“驼峰式大小写(标志符由多个单词组成 除首词首字母小写外 其余单词首字母均大写)” 

  2:避免滥用类 当类型的结构需要不一样的表现时 记得什么是层叠样式表 具体结构中的p a h1等可使用如下方式:div.sideBar p{}定义即后代选择器+ID或类选择器组合方式。 

  3:DIV与SPAN IV(块级框)用于对块级元素的分组 SPAN(行内框)用于对行内元素分组标识 

  4:对于页面基本默认的方式可以选择通用选择器(*标识)进行定义 * { padding:0; margin:0;} 

  5: body 也是可以添加ID和类的 这样就可以为其添加特别样式。 

  6:样式表中导入样式表需在顶端 覆盖规则为本身样式覆盖导入样式 

  7:CSS样式表细分化 颜色 布局 风格 表单 均可分离 这样对以后的修改和风格设计更方便 

  8:盒模型:内→外 

  content←width height(补充:height只有在父元素定义了绝对高度时其%才有意义)

  border 

  padding(内补丁)-“填充” 

  background-image 

  background-color 

  margin(外补丁)-“空白边”透明 可为负值 

  记住:在css中 width是指内容区域的宽度 

  IE/WIN与盒模型: 

  IE5.5/IE6怪异模式下: 元素框总宽度=content.width+margin.width 

  FireFox/Opera/.. : 元素框总宽度=content.width+padding.width+border.width+margin.width 

  差异在于:IE5.5/IE6怪异模式下 width=有效content.width+padding.width+border.width 内补丁和边框被算在内容宽度里面 

  #select{width:750px;padding:10px;border:5px} IE怪异模式:总宽度:750px FF/OP:780px 

  IE怪异模式:有效内容宽度:750-20-10 FF/OP:750

  IE6正常模式下:同于FF/OP 

  处理方法:在父元素或子元素中使用padding 本身不使用 

  空白边叠加:当两个空白边叠加时 顶或底边将会叠加 实际空白边高度=空白边大的值 

  例: 

   

   空白边高度为20px 

  但是如果这个时候你添加边框或则填充,将不再叠加 

  //定位机制// 

  9:相对定位(relative):相对于其默认初始位置 绝对定位:相对父级元素或画布、HTML元素 与文档流无关 可覆盖其他元素 使用Z-INDEX 控制其层次。IE5.5/IE6下 对right bottom时 需设定框的宽高 后则根据画布右底定位 

   绝对定位(absolute) 

  10:float浮动:记住:“在标准浏览器中 浮动元素脱离了文档流 不占据外围容器空间” 明白了这点 你就会明白为什么IE和FIREFOX下表现的不同了。IE5.5、IE6浮动元素依然占据外围容器空间

   例如:怎么在IE下feeter正常 在firefox下就跑上去了呢?^_^ 清除浮动吧 

  IE下 当float和text-align定义的方向一样时 出现双倍错误: 

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

  实际左边margin-left:20px;FF/OP:10px 解决:加上display:inline; 

11:彻底理解 “清除浮动”clear 

  clear:none、left、right、both、

  表示当前框元素哪些边不应该挨着浮动框

  理解了10中float在不同浏览器下的表现 你也就知道如何去使用清楚了。 

12:背景图像的定位:只谈百分比 background:url(image-url.gif)no-repeat 20% 30% 20%:将图像X轴20%处与父元素X轴20%处重合 Y同理 top=0% bottom=100% left=0% right=100% center=50% 



13:滑动门/ 

  左右两个DIV 背景分别定义 一般左背景图像比较长; 左背景定位:left center 右背景定位:right center 

  外部控制容器宽度一般小于等于两个背景和 这样当内容动态变化时候 右背景图像便感觉像在左背景图像上滑动,故名。 

  这样也可以实现: 

首页

  css: 

  #nav a{float:left;background:url("../images/navLeft.gif") no-repeat left top;padding:0;text-decoration:none; cursor:hand;}

  #nav a span {float:left;display:block;background:url("../images/navRight.gif") no-repeat right top;padding:5px 36px 5px 40px;color:#ffffff} 

  原理相似,注意背景图像定位。 

14:完美的居中布局:body{text-align:center;mini-width:760px;}

   div#wrapper{margin:0 auto;text-align:left;width:750px;} 

  

  mini-width IE并不认识 这是为老浏览器准备的,只是这个值比你需要的实际页面大就OK 

15:小图标有时会给页面增色不少 用前记得规划好 整到一张大图片上 这样可以减少服务器请求次数。

[解决办法]
长篇。。。。

热点排行