Как иметь только вертикальную полосу прокрутки на div

У меня есть таблица, которая находится в div. Длина таблицы может меняться, и я использую div для обеспечения высоты.

<div id='CamListDiv'>
<table>
    <thead>
        <th><input type='checkbox' id='selectAll'/></th>
        <th>Local Camera List</th>
    </thead>
    <tbody>
        <tr><td>//camera 1 data //</td></tr>
        <tr><td>...</td></tr>
        <tr><td>//camera x data //</td></tr>
    </tbody>
</table>
</div>

CSS
#CamListDiv {
    height: 340px;
    float: left;
    overflow: auto;
    overflow-y: hidden;
}

Моя проблема в том, когда нужна вертикальная полоса прокрутки, занимаемое ею пространство вызывает появление горизонтальной полосы прокрутки. Мне не нужна горизонтальная полоса прокрутки, и я попытался использовать свойство overflow-y: hidden; css, чтобы скрыть ее, но это заставляет обе полосы прокрутки скрываться.

Кто-нибудь знает, почему overflow-y:hidden; работает не так, как ожидалось, или как остановить горизонтальную полосу прокрутки от видимости?

Ответ 1

Вы скрываете вертикальную полосу прокрутки, а не горизонтальную.

Измените overflow-y: hidden; на overflow-x: hidden;


Вот демон

Я добавил контент, превосходящий высоту, и div с шириной больше 340 пикселей внутри #CamListDiv. Содержимое прокручивается только вертикально.

Ответ 2

Кстати, свойство overflow-y не работает должным образом в IE8 и ранее. http://www.w3schools.com/cssref/css3_pr_overflow-y.asp

Попробуйте установить стиль = "width: 100%;" к таблице внутри div, которая должна скрывать горизонтальную полосу, потому что она не будет больше, чем контейнер.

Ответ 3

Вы можете использовать Overflow-y, который входит в css2, см. здесь