文本框大小在IE 6和FireFox 3.6中有所不同

时间:2010-03-23 12:30:54

标签: css internet-explorer internet-explorer-6 firefox3.6

我在使用Fire Fox 3.6时遇到文本框大小的问题。 的< input class =“dat”type =“text”name =“rejection_reason”size =“51”maxlength =“70”onchange =“on_change();”>

样式如下: .dat {  font-family:verdana,arial,helvetica;  font-size:8pt;  font-weight:bold;  text-align:left;  vertical-align:middle;  背景色:白色; }

Fire Fox中的文本框大小比IE6小。

不确定为什么IE6和FireFox会显示差异大小的文本框。

5 个答案:

答案 0 :(得分:3)

开发不同的Web浏览器引擎时的正常问题。 请注意,您可能应该为FireFox 3.6而不是IE6开发,因为IE6已经设置为“旧浏览器”,而微软不再支持它。将您的代码更改为在FireFox,IE,Chrome,Opera中正常运行。 在以下网址寻找更多信息: https://stackoverflow.com/questions/72394/what-should-a-developer-know-before-building-a-public-web-site

答案 1 :(得分:2)

尝试在css中指定宽度。如果仍然没有,你可以在宽度字的前面附加一个星号作为第二个条目,它只适用于IE6。

.dat
{
    width: 100px;
    *width: 105px; -- or whatever makes it look correct
}

编辑:感谢特殊角色的更新。

答案 2 :(得分:2)

您尚未指定其宽度,只需要通过size属性获取51个字符。我建议删除Size =“51”属性并添加宽度样式:666px;

编辑:在您的评论之后 首先,仅仅因为你并不意味着你应该。解决这个问题的正确方法是改变你所有的< input type =“text”>使用css类或css宽度来定义它们的宽度。

但是,以下jQuery将为每个具有size属性

的输入类型= text添加宽度样式
jQuery(                            // on Document load 
    function($){                   // run this function 
    $('input[type=text][size]')    // find all input type=text with a size attr
           .each(                  // for each element found
        function(index, Element){  // run this function
            var size = $(this).attr('size');  // get size attrubte value
            $(this).width((size * 0.6)+"em"); // set the css width property to 
        });                                   // a nasty huristic
    }
);

现在,由于这只会影响指定大小的输入,因此当您触摸每个页面时,您可以删除大小attr并将其替换为Css大小,因此最终您将不需要此脚本。

答案 3 :(得分:2)

有一个更完整的解释,我只需要给经理;

IE6建于2000年左右,当时忽略了几个重要的网络标准。 IE6有点“吸取教训”; IE7更适合遵循这些标准,IE8更好。

Firefox是围绕Netscape / Mozilla构建的,重要的是,他们尽可能地遵循公共标准。 Firefox在很大程度上表现得像Safari,Chrome,Opera以及大量微型市场份额的浏览器。

商人问: 那么,为什么支持标准,而不是IE,这是块中的大孩子?几乎所有客户都使用IE!

<强>答案: 因为IE也在慢慢走向标准。如果我们支持Firefox,IE8很简单,我们可能也会获得IE7,几乎没有任何变化。 IE6是美中不足之处。

如果我们支持IE6--原始提案 - 那么IE7是一个特例,IE8是另一个特例,Firefox是一个特例,依此类推。

如果我们可以鼓励用户远离IE6,这是我们最好的情况。我相信当Server 2003 SP1离开支持时,微软正式终止了IE6的所有支持 - 包括安全补丁 - {3}}。 April 2009已完全停止支持IE6,例如,礼貌地让用户知道他们需要升级“以获得完整的网站体验”。像Google这样的网站为运行IE6的用户提供了一个非常漂亮的CSS弹出窗口,为他们提供了一些升级选项。

但与此同时,由于客户确实使用它,IE6将继续存在,并且最容易 - 也是最容易维护的 - 构建标准,并且直到它完成后才能回到IE6。

答案 4 :(得分:1)

@size属性给出一个字符大小。但是,除非您使用等宽字体,否则字符本身的大小不是明确定义的。另外,不同的渲染引擎可以使用不同的规则来进行字符间距和/或字距调整。因此,最后,该属性只是对浏览器的一个模糊提示。

您是否尝试过类似style = "width:51em;"的内容?没有测试过,但宽度属性得到了很好的支持,所以我希望这会有用。如果您想要更精确的尺寸,也可以使用绝对(像素)单位。

希望这有帮助。

相关问题