2008年04月15日
昨天在实际应用中发现href执行javascript会影响iframe的载入,具体表现为在IE下,当点击了带有href="javascript:xxx;"这样的链接时,如果有iframe正在载入,那iframe就会停止载入动作。
其实我并没有让href去执行javascript的意思,我的应用习惯的是这样的href="javascript://;" onclick="xxx();",以前一直没发现这个问题,暂时修改成这样onclick="xxx();return false;"来解决问题,养成这个不良的习惯比较糟糕(更糟糕的其实是写inline javascript的习惯)
2008年01月13日
在firefox 3的DOM improvements中,添加了对于The Web Applications 1.0 (HTML5)中包含的getElementsByClassName的支持。以前我们一般都是通过自己定一个函数来达到目的。
比如:
function GetElementsByClassName(elementName,className) {
var allElements = document.getElementsByTagName(elementName);
var elemColl = new Array();
for (var i = 0; i< allElements.length; i++) {
if (allElements[i].className.search('(^|\\s)' + className + '(\\s|$)') != -1) {
elemColl[elemColl.length] = allElements[i];
}
}
return elemColl;
}
看来大家都在进步,“通过”Acid2测试的IE8也要加油了!
2007年04月16日
在"Styling lists and creating nav bars"章节发现一个对我来说很有用的ie bug fix:li {display:inline;}作者的注释是"Removes large gaps in IE/WIN".马上试验了一下,真的解决了一个长久困扰我的问题。
以前在做一些纵向的导航菜单的时候,经常会用到一个锚(a)的hover效果,范例可以看这里
li a {display:block;background:#000;color:#FFD800;}
li a:hover,li.here a {background:#570B06;}
这里我们把锚(a)块级化以后,在IE7.0之前的版本中,锚(a)后面会有一个空白textnode,另起一行的问题,这样便把各个li的间距加大了。我以前的fix方式,就是把html结构里li前后的空格都消灭掉,做法比较烦人...
现在好了,只要li {display:inline;}就可以了,多看书还是有益的 :)
2007年01月03日
Internet Explorer 7中的层叠样式表兼容性不知道怎么的就在MSDN上看见了这篇文章,都2007年了,我还是每天在网上闲逛。
在IE 7下,我的页面乱了、内容溢出了,文字重叠了...这些可能是用了IE 7以后,比较多出现的页面问题吧。不知道我的页面在IE 7下是怎么样的,应该不会有溢出的问题把。(希望)顺便推荐一个网站,可以给你返回各种浏览器浏览你网站的效果图片。(Test your web design in different browsers)
继续话题,文章上提到了几点引起这些浏览的问题关键:
处理overflow:visible的默认行为
设置了默认的高度和宽度,在IE 6的年代,内容如果超出范围,高度将会自适应的变化(好似很智能),但是在IE 7下就会有溢出了,如果你必须要制定一个最小的高度或者宽度的话,推荐使用min-height和min-width由于CSS hacks的改进而导致的错误页面(IE 7对于CSS支持的改进)
一些老的CSS hacks写法,比如用html > body,head + body,head:first-child + body等来区别IE和其他现代浏览器,因为IE 7已经支持以上CSS声明,所以也失效了,必须注意。
关于CSS hacks,可以看看以前的这两篇文章: