我有一个固定高度的 div,其中包含一个子文本区域,也具有固定高度。
在 chrome 中,如果 div 和 textarea 的高度相同,则 div 将有一个滚动条(如果设置为 overflow:auto )。这在 Firefox 中不会发生,如果嵌套两个 div 元素也不会发生。
这是一个简单的例子:
<div style="height:100px; margin:0; padding:0; overflow:auto">
<textarea style="height:100px; margin:0;padding:0;border:none">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut augue metus, pulvinar in accumsan ut, malesuada quis sapien. Curabitur eleifend massa ac arcu congue, eu aliquet enim porta. Integer tristique tristique placerat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas elementum, arcu eget pulvinar sodales, quam metus pharetra felis, vel commodo enim eros a eros. Maecenas placerat ullamcorper odio, et viverra tellus tempor non. Proin iaculis non eros id convallis. Nullam tellus mauris, congue ut laoreet sit amet, mollis tempus lacus. Duis lacinia commodo convallis. Suspendisse mollis lectus a tristique mattis. Nullam gravida dictum purus a sagittis. Cras in sapien nec nulla porta consequat.
</textarea>
</div>
在小提琴中:http: //jsfiddle.net/MBn7Y/
如果您将 textarea 元素替换为具有相同内容和属性的 div,则问题不存在。
我想知道为什么会这样。将溢出设置为隐藏会删除 div 的滚动条,但我的特殊情况有点复杂,隐藏溢出看起来不太好。
我的 firefox 版本是 24.0,chrome 是 29.0.1547.76,两者都在 linux mint 13 上运行。我在 chromium 28.0.1500.71 上也有同样的问题
提前感谢任何有解释的人!
编辑:
这是小提琴的屏幕截图:http: //i.imgur.com/CcW2pAK.png
我希望删除最右边的滚动条,而不是 textarea 的。由于文本很长,因此 textarea 获得滚动条确实是正常的。我不明白为什么父 div 也有滚动条?
该问题也仅发生在内联样式中,如果您使用类设置大小,则问题不会发生。(例如:http: //jsfiddle.net/KPjak/)
在我的情况下,高度由 javascript 设置并且是可变的,因此类不是解决方案。