На моем веб-сайте есть таблицы, вложенные в абсолютно позиционируемые перетаскиваемые диалоги, которые отображаются / скрываются на основе некоторых взаимодействий с пользователем.Стоит отметить, что эти таблицы имеют table-layout: auto;
и width: auto;
.Возникла проблема, когда в таблице было так много строк, что она ушла за нижний край экрана.Это вызвало проблемы с перетаскиванием, поскольку мы ограничили перетаскивание краями области просмотра.Чтобы решить эту проблему, я обернул таблицу в <div>
и установил max-height: 400px; overflow: auto;
.Это дает пользователю хорошую вертикальную полосу прокрутки всякий раз, когда таблица превышает максимальную высоту.Это работает, но по какой-то причине браузер (как IE, так и Chrome) не учитывает ширину полосы прокрутки, поэтому каждый раз, когда высота таблицы превышает максимальную и вызывает переполнение, таблица сжимается влевои некоторые ячейки в первом столбце имеют очень уродливый перенос слов.Без комбинации переполнения / максимальной высоты ширина таблицы рассчитывается правильно и переполнения нет.
Демонстрация в реальном времени на jsFiddle
Iнашел два способа обойти это, оба из которых неосуществимы ...
- Явно установите ширину в каждой из ячеек (или используйте
table-layout: fixed
) - Используйте
overflow-y: scroll;
вместо авто, что вызывает полосу прокрутки до , всегда появляется , даже когда она не нужна.Хуже всего то, что overflow-y является свойством CSS3.
Должно быть лучшее решение!Как я могу получить вертикальную полосу прокрутки на родительском элементе моей таблицы без переноса слов?