首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

疑难杂症:firefox浏览器<textarea rows=一>令人费解的滚动条

2013-11-08 
疑难杂症:firefox浏览器textarea rows1令人费解的滚动条话说天下大事,浏览器诸侯混战,我等开发者追遭殃

疑难杂症:firefox浏览器<textarea rows=1>令人费解的滚动条
话说天下大事,浏览器诸侯混战,我等开发者追遭殃!

我的火狐版本是 Firefox 3.6.2

开发中碰到这么个事:
产品中要求这么样个输入框,当内容为空或只有1行时,显示看起来是1行的文本框,当内容超过1行的时候,显示为2行的textarea,输入内容超过2行以上,则出现滚动条。

起初,我想,只要设置textarea的rows分别为1或者2就行了,结果事情并非这么简单。
在非Firefox下,(包括IE各版本、Opera、Chrome),都能正常显示rows=1的textarea,右侧能出滚动条,不管内容多少。非火狐浏览器与我的预期一致。
但没料到火狐会这么麻烦。

常言道:外事不决问狗狗,内事不决用百毒。
狗狗了一下,发现很多人为此所扰。

火狐下的textarea主要有这么两个方面的问题:
1、实际显示高度比rows属性值多1行,火狐是为横向滚动条预留的位置,可是没出现横向滚动条的时候,它也占着这么个位置。
2、当rows=1的时候,基本就不会出现滚动条了,不管内容多少行。即使你强行style="overflow:scroll"也没有滚动条。

做的过程中,我还发现,rows=1的时候,textarea滚动条能否出来,还跟textarea的字体大小有关,字体小了也出不来。在我的机子上,font-size如果大于等于15px则能出滚动条,小于等于14px则无论如何出不来滚动条。

上个图给大家看:



代码很简单,是这样的:




然后试验发现,不管是textarea,还是div(设置了overflow-y:scroll) ,只要它的高度不够显示滚动条的上下两块箭头按钮,那么滚动条就不会出现。也就是说,火狐的滚动条的上下箭头按钮不能像其他浏览器那样缩小高度。火狐偷了个懒,没去伸缩那两个按钮,而是直接把滚动条藏了。 今天也发现了这个问题,http://www.w3help.org/zh-cn/causes/HF1007
还是用CSS好

热点排行