2

在 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; 字体大小:8pt;字体粗细:粗体;文本对齐:左;垂直对齐:中间;背景颜色:白色;}

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

不知道为什么 IE6 和 FireFox 显示差异大小的文本框。

4

5 回答 5

3

为不同的网络浏览器引擎开发时的正常问题。请注意,您可能应该为 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

于 2010-03-23T12:36:28.893 回答
2

尝试在 CSS 中指定宽度。如果这仍然被破坏,您可以在宽度字的前面附加一个星号作为第二个条目,它仅适用于 IE6。

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

编辑:感谢您对特殊字符的更新。

于 2010-03-23T12:35:57.433 回答
2

您没有指定它的宽度,只是希望它通过 size 属性占用 51 个字符。我建议删除 Size="51" 属性并添加一个宽度样式:666px;

编辑:在您发表评论后首先仅仅因为您可以并不意味着您应该这样做。解决此问题的正确方法是更改​​所有 <input type="text"> 以使用 css 类或 css 宽度来定义它们的宽度。

但是,以下 jQuery 将为每个具有 size 属性的输入 type=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 大小,因此最终您将不需要此脚本。

于 2010-03-23T12:36:36.957 回答
2

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

IE6 是在 2000 年左右构建的,当时忽略了几个重要的 Web 标准。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于 2009 年 4 月停止支持时,微软正式终止了对 IE6 的所有支持,包括安全补丁。 例如,谷歌已经完全停止支持 IE6,礼貌地让用户知道他们需要升级“以获得完整的网站体验”。像IE6NoMore这样的网站为运行 IE6 的用户提供了一个漂亮的 CSS 弹出窗口,为他们提供了一些升级选项。

但与此同时,由于客户确实使用它,IE6 将继续存在,并且它是最容易 - 也是最可维护的 - 按照标​​准构建,并破解我们的方式回到 IE6,直到它完成。

于 2010-03-23T13:19:50.183 回答
1

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

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

希望这可以帮助。

于 2010-03-23T12:37:44.330 回答