ボトムパディングだけではありません。右のパディング/境界線/間隔も無視されます(コンテンツがなく、幅がスクロールされていないため、例では表示されません)
上記のすべての答えはchrome43で失敗し、最大3つのスクロールバーが生成されます。または、コンテンツが#some_infoにあふれている場合。
例: http: //jsfiddle.net/LwujL3ad/
それがあなたのために働いた場合、それはおそらくコンテンツがスクロール要素ほど広くなかったか、固定サイズではなかったためです。
正しい解決策は次のとおりです。
#some infoをdisplay:tableに設定し、スクロールコンテナではなく、それにパディングまたはボーダーを追加します。
#container {
overflow: scroll;
width: 300px;
height: 300px;
background: red;
padding-bottom:0;
}
#some_info {
display:table;
border: solid 3em red;
height: 900px;
background: #000;
margin-bottom:3em;
color: white;
}
デモ:http://jsfiddle.net/juh7802x/
失敗せず、セパレータとしてそこに追加する境界線とパディングを尊重する唯一の要素はTABLEです。
私が試したところ、次の直接の子であるか、多くのアイテムが深くネストされているかに関係なく、コンテンツ以外のスタイルはコンテンツをラップするように拡張されず、親の幅の100%のままになります。親よりも大きなコンテンツを持つことは、まさにスクロールdivが必要なシナリオであるため、これはナンセンスです。
動的ソリューション(コンテナーとコンテンツの両方)の場合、スクロールコンテナー内の要素のコンテナーをdisplay:tableに設定します。