ie7下脚本添加的样式不生效问题

不知道还有多少人需要考虑到ie7的兼容问题啊,反正我最近是被折磨的够呛,前两天才遇到一个问题,在说明这个问题之前,先把测试代码放上来吧

<!doctype html>
<html>
<head>
	<meta charset="utf-8">
	<title>CANVAS</title>
    <style type="text/css">
        .title{
            color:red;
            font-size: 16px;
            text-decoration: underline;
        }
        .icon{
            color:blue;
            text-decoration: none;
        }
    </style>
</head>
<body>
    <button id="test">ie7测试</button>
    <script type="text/javascript">
    document.getElementById("test").οnclick=function(){
        var span=document.createElement("span"),
            icon=document.createElement("i");
        span.innerHTML="ie7 bug 测试";
        span.setAttribute("class","title");
        icon.innerHTML="yellow text";
        icon.setAttribute("class","icon");
        document.body.appendChild(span); 
        document.body.appendChild(icon);
    }
    </script>
</body>
</html>

ie8以上的浏览器,.title和.icon的样式都应用上了,ie7下样式是有问题的


很明显了应该,就是新增加的节点的样式没有应用上去,虽然在查看页面结构的时候,类名已经都在了,但是样式还是木有。百度之后别人说改变元素的display属性可以触发样式重新加载,但是不知道是我试的方法不对还是怎么着,没有用。最后,用了这种方法,没有用setAttribute去设置类名,直接把类名写在标签上了

<script type="text/javascript">
    document.getElementById("test").οnclick=function(){
        var span=document.createElement("span"),
            icon=document.createElement("i");
        span.innerHTML="<span id='color' class='title'>ie7 bug 测试</span>";
        //span.setAttribute("class","color");
        icon.innerHTML="<i class='icon'>yellow text</i>";
        //icon.setAttribute("class","icon");
        document.body.appendChild(span); 
        document.body.appendChild(icon);
    }
    </script>
好了,天下太平了,虽然这样会导致多嵌套了一层无意义的层,但是也没办法了。

以上仅为个人拙见,如果有更好的解决方案,请多多指教。如果有哪位大虾能够明白点的解释下“改变display属性可以触发样式重新应用”,麻烦告知一声,谢谢~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

michael_yqs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值