我正在使用单位PNG修复(http://labs.unitinteractive.com/unitpngfix.php)在IE中使透明的png工作。它被用在我的徽标容器的背景图像上。
所以我有我的html,其中包含这些相关项目。在头脑中:
<!--[if lt IE 7]>
<script src="/assets/script_unitpngfix.js" type="text/javascript"></script>
<![endif]-->
然后在身体里:
<a href="index.html" style="display:block;"><span id="Logo"></span></a>
因为,在单位PNG修复工作之前,徽标会在其周围加上灰色框,我怎样才能隐藏整个范围,直到执行javascript之后,用户永远不会看到灰框?
谢谢。
答案 0 :(得分:7)
而不是你当前的跨度,这个:
<span id='Logo'
style="display:none"></span>
然后将此函数附加到body onload事件(<body onload = "showMySpan()">
):
function showMySpan() {
var mySpan = document.getElementById('Logo');
mySpan.style.display = "";
}
答案 1 :(得分:3)
您可以使用jQuery及其ready函数,它专门用于等待加载DOM。
HTML会使用display:none
开头:
<span id="Logo" style="display:none;"></span>
然后,添加这样的脚本(假设你也链接到jQuery):
<script>
$(document).ready(function () {
$("#Logo").show();
});
</script>
答案 2 :(得分:2)
默认隐藏span
:
<span id="Logo" style="display:none;"></span>
然后添加一段JavaScript以便稍后显示:
document.getElementById('Logo').style.display = 'inline';
确保(至少在IE中)在PNG修复之后执行此代码的最佳方法是将其放在单独的JS文件中并将其作为延迟脚本加载到页面末尾:
<script type="text/javascript" src="show_span.js" defer="defer"></script>
有关延迟脚本的更多详细信息:JavaScript: Defer Execution
答案 3 :(得分:0)
我会使用jquery或其他js框架,然后在'document.ready'或类似的东西中使用casablanca的解决方案。
信任浏览器的加载时间/订单永远不会健康。