Как сделать таблицу внутри изменяемого прокручиваемым div, правильно вести себя

0

У меня есть изменяемый размер и подвижный div с использованием JQuery UI. Я хочу, чтобы в нем была таблица, которая прокручивается вертикально. Попытка установить высоту стола на 100% в основном ничего не делает, и абсолютное позиционирование с верхним и нижним 0 тоже не работает. Я попытался поместить отдельный div в качестве контейнера, и это приблизило меня к чему-то, но оно по-прежнему не ведет себя должным образом.

Вот скрипка: http://jsfiddle.net/scottbeeson/KrP7v/1/

Вот соответствующий CSS:

table {
    border-collapse: collapse;
    width: 100%; height: 100%;
}
#tableContainer {
    height: 100%; width: 100%;
    overflow-x: hidden;
    overflow-y: scroll;
}

И основной макет HTML:

<div id="window">
    <div id="header">Draggable Header</div>
    <div id="tableContainer">
    <table>
        <thead>
            <tr>
                <td>Column 1</td>
                <td>Column 2</td>
            </tr>
        </thead>
        <tbody>
            ...
        </tbody>
    </table>
    </div>
</div>
  • 0
    Если я использую div и span со свойствами макета таблицы, могу ли я продублировать внешний вид таблицы (включая ширину столбцов) и избежать этой проблемы?
Теги:
html-table
scroll
jquery-ui-resizable

2 ответа

1
Лучший ответ

Я думаю, что это то, что вы хотите.

http://jsfiddle.net/KrP7v/12/

#window {
    width: 500px;
    height: 400px;
    min-width: 100px;
    min-height: 100px;
    border-bottom: 1px solid gray;
}
#header {
    height: 25px;
    line-height: 25px;
    background-color: gray;
    color: white;
    text-align: center;
}
table {
    min-height: 300px;
    height: 100%;
    width: 100%;
    border-collapse: collapse;
}
#tableContainer {
    position: absolute;
    top: 25px;
    bottom: 0px;
    left: 0px;
    right: 0px;
    margin: 0;
    padding: 0;
    overflow: auto;
}
td {
    padding: 5px;
    margin: 0px;
    border: 1px solid gray;
}
tr:last-child td {
    border-bottom: none;
}
  • 0
    Я сделал небольшой твик (добавил нижний колонтитул, чтобы он содержал ручку изменения размера), и я думаю, что теперь он идеален. Спасибо! jsfiddle.net/scottbeeson/KrP7v/17
  • 0
    Удаление границы последнего ребенка не имеет смысла, если у вас есть нижний колонтитул. Кроме того, я заметил, что вы задали высоту нижнего колонтитула как 25px, но сделали нижнюю часть контейнера контейнера только 20px. jsfiddle.net/KrP7v/18
Показать ещё 1 комментарий
0

Вот что вы можете сделать:

http://jsfiddle.net/KrP7v/4/

#window {
  width: 400px; 
  border: 1px solid green;
  overflow-x: scroll;
  overflow-y: scroll;
}
  • 0
    Eww, так что вы должны заставить горизонтальную полосу прокрутки? Конечно, есть другой способ?
  • 0
    Кроме того, как только вы изменяете размер, ручка изменения размера попадает в полосу прокрутки.
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню