safari和opera浏览器下margin使用小提示

八 14th, 2008  , , , , , ,
0

Comments

首先请看这段代码:



   这代码在IE和FF下是正常显示的,及div b在div a的内部,并且div b距div a的顶端有100px的距离;

   可是,在safari和opera下却发生了问题,div b距离div a的顶端距离为0,却把div a  “拉”下来了,及div a距离浏览器边缘的距离增加了,增加的距离正好是div b的margin-top的值;

   我试着在div b的样式里加入了position:absolute;,这样就能正常显示了,和IE和FF下一样;

   然后又发现一个奇怪的现象,如果我在div a里加个内容,比如写个数字“1”,就算不加position:absolute;,也会正常显示了,注意,数字“1”要加在div b的前面,放后面不会起作用,高手指点迷津……

js获取鼠标位置杂谈

八 13th, 2008  , , , ,
1

Comments

   最近在搞一个AJAX的小功能,目的是用浮动div框显示当前鼠标下控件的详细信息,其中获得鼠标位置这块害得我走了很多冤枉路,因为压根没有想到我下面提到的第二点的区别,所以我的页面出来总是找不到我之前定义的那个div;

   其实获得鼠标位置就是一句话的事情,但是要是不了解浏览器间的区别,整个过程就会让人很郁闷,区别在与:

   1.IE下获得x和y轴的距离分别用event.x和event.y;
     FF下获得x和y轴的距离分别用event.pageX和event.pageY;

   2.IE下用此方法获得的位置是不算滚动条滚过的位置的,即它只会算到浏览器边缘;
     FF则会算进滚过去的那些位置;
     (这个地方很让我崩溃,为这么点小区别我把所有用到的程序全部重写了一遍,囧死……)

   解决1的办法,无非是判断一下浏览器,然后用什么方式;

   解决2的办法,是在IE的情况下在x和y轴分别加上document.documentElement.scrollTop和document.documentElement.scrollLeft;

   对JS我了解的比较少,如果大家有更好的建议欢迎留言指教!谢谢

FF与IE中getElementById用法的一个差别

七 18th, 2008  , , , , , , ,
2

Comments

写了一段ajax程序,发现在IE正常,但是到FF下就不行了。
仔细检查了一下,原来是getElementById搞的鬼;

原因
在IE中:如果某个控件只使用了name属性,而没有设定ID属性的话,同样可以使用getElementById函数;
在FF中:会提示说“getElementById没有属性”,即没有按照name去寻找控件;

解决办法
给要抓取的控件加上id属性就OK了!