基本的に、内容が同じ場合、スクロールバーを と でまったく同時に表示する (または偽の) 必要があります (空白を同じように扱うために) 。textarea
div
white-space: pre-wrap
Webkit では、これは簡単です。
textarea.foo, div.foo {
overflow: auto; /* show scrollbars exactly when needed */
/* also match padding, height, width, font, line-height, etc. */
}
しかし、他の一部のブラウザー (OS X の Firefox と IE7 だと思います) では、コンテンツがスクロールを必要とするほど長くない場合、div ではなく textarea にのみ実際にスクロールバーを表示します (またはその逆)。
わかりやすくするために、スクロールバーがすべてのブラウザーで同じように表示されることを要求しているわけではありません。すべての主要なブラウザーでこれを実現する必要があります。div と textarea は、同じブラウザー内で同じコンテンツを指定すると、他の要素がスクロールバーを表示するたびに正確にスクロールバーを表示します。それが時々、常に、または (Safari/OS X Lion では) 決して重要ではない場合。