(转丁学)Firefox2的一个bug和脑子进了水的IE

先来说IE的这个小问题,对于一个输入框,如果指定了disabled="disabled",那么所有样式对它无效,不知道IE的开发团队是怎么想的,虽然用户禁用了文本框的可输入性,但并没有禁止此框的显示,所以让样式失效不知道是出于什么考虑。虽然如果样式对禁用的文本框起作用可能会产生“欺骗”,当disabled的文本框和其他文本框表现完全一样时,这是一种对用户的欺骗,明明看起来一样的东西,却产生不同的行为,但是这个东西应该是设计师们考虑的,设计师们自然会给两种文本框不同的样式,除非他也没想明白……但无论如何,IE都不应该越俎代庖,一棒子全打死了,这多不好?

下面来说Firefox的这个bug,这个就有趣的多:(废话不多说,直接看代码)
<!--本文最初发表于博客园-丁学,此BUG出现在FF2,FF3无此BUG,其他版本未测试-->
<!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>
    <title>可爱的FireFox</title>
    <script type="text/javascript">
        function display(r){
            var s = document.getElementById("tbl").rows[1].cells[r];
            s.style.display = s.style.display=="none"?"":"none";
        }
    </script>
</head>
<body>
    <form method="post" action="" id="form1">
        这个控制td1<input type="checkbox" value="1" checked="checked" onclick="display(0);" /><br />
        这个控制td2<input type="checkbox" value="2" checked="checked" onclick="display(1);" /><br />
        先把上面两个复选框取消选择,这样td1/td2会被display:none了,然后先选择前一个显示td1,再选择后一个显示td2,看header!<br />
        bug仅在FF2下被发现,FF3没有此问题,其他版本未测试
    </form>
    <table id="tbl" border="1" style="border-collapse:collapse;300px;">
        <tr>
            <td colspan="2">header</td>
        </tr>
        <tr>
            <td>td1</td>
            <td>td2</td>
        </tr>
    </table>
</body>
</html>
<!--原文链接:http://dingxue.cnblogs.com/archive/2008/06/03/1212553.html-->

警告:上述代码仅为表现一种形式而产生,漏洞多多,标准不符,请勿直接用于生产环境。

最近发现很多人转载不加原文链接,那我只好自己加上了:丁学

测试OPERA没有问题(无伞测)

原文地址:https://www.cnblogs.com/yuzhongwusan/p/1228897.html