2013-03-20 5 views
3

Я создал фиксированный заголовок с использованием CSS (в основном, просто устанавливая положение ада для исправления), но проблема, с которой я столкнулся, заключается в том, что размер разрешения или размер окна пользователя чем размер таблиц, мне нужно добавить горизонтальную полосу прокрутки, чтобы они могли видеть все. я попробовал настройку переполнения для автоматического и прокрутки, но только при прокрутке вниз до нижней части страницы появляется полоса прокрутки. Также мне нужно иметь прокрутку thead со столом. Любые предложения о том, что горизонтальная полоса прокрутки отображается, если окно меньше размера таблиц, и как у вас все еще фиксируется в одной позиции, но все же прокрутите, чтобы увидеть больше, если размер окна слишком мал?Горизонтальная прокрутка по таблице с фиксированным заголовком

http://jsfiddle.net/E9mqk/1/

HTML, является:

<div class="table-wrapper"> 
<table id="table-information"> 
    <colgroup></colgroup> 
    <colgroup></colgroup> 
    <colgroup></colgroup> 
    <colgroup></colgroup> 
    <colgroup></colgroup> 
    <colgroup></colgroup> 
    <colgroup></colgroup> 
    <colgroup></colgroup> 
    <thead class="table-fixed-header" id="table-data"> 
     <tr> 
      <th>Something 1</th> 
      <th>Something 2</th> 
      <th>Something 3</th> 
      <th>Something 4</th> 
      <th>Something 5</th> 
      <th>Something 6</th> 
      <th>Something 7</th> 
      <th>Something 8</th> 
     </tr> 
    </thead> 
    <tbody class="table-body"> 
     <tr> 
      <td>Data</td> 
      <td>Data</td> 
      <td>Data</td> 
      <td>Data</td> 
      <td>Data</td> 
      <td>Data</td> 
      <td>Data</td> 
      <td>Data</td> 
     </tr> 
     <tr> 
      <td>Data</td> 
      <td>Data</td> 
      <td>Data</td> 
      <td>Data</td> 
      <td>Data</td> 
      <td>Data</td> 
      <td>Data</td> 
      <td>Data</td> 
     </tr> 
     <tr> 
      <td>Data</td> 
      <td>Data</td> 
      <td>Data</td> 
      <td>Data</td> 
      <td>Data</td> 
      <td>Data</td> 
      <td>Data</td> 
      <td>Data</td> 
     </tr> 
    </tbody> 
</table> 
</div> 

И CSS является:

.table-wrapper { 
    overflow-x: scroll; 
} 
.table-fixed-header { 
    position: fixed; 
} 
#table-information tbody:before { 
    line-height: 30px; 
    content:"-"; 
    color:white; /* to hide text */ 
    display:block; 
} 
#table-information td { 
    max-width: 100px; 
    min-width: 100px; 
} 
#table-information th { 
    max-width: 100px; 
    min-width: 100px; 
} 
+1

Предоставить [jsFiddle] (http://jsfiddle.net) объяснение проблемы не поможет. – user2129623

+0

Это неправильное использование тега colgroup. Эта таблица структурно содержит только одну colgroup с восемью элементами col. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col –

ответ

1

Предполагая, что вы не делаете что-то в JavaScript, который производит странное поведение на столах, вы можете просто оберните таблицу в

<div style="overflow-x: scroll;"> 
    [your table here] 
</div> 

или какой-либо другой элемент блока с тем же стилем, и вы получите поведение, которое вы ищете, включая прокрутку головы и тела вместе - см. this jsfiddle для рабочего примера.

+0

Из Конечно, если ваша проблема заключается не в том, что вы не можете получить полосу прокрутки, а в том, что вы не можете заставить полосу прокрутки отображаться где угодно, кроме таблицы, которая меняет вещи - лучший совет по этому поводу - это Javascript, установите высоту и максимальную высоту в контейнере div, которые меньше, чем пользовательский window.innerHeight, а также установите overflow-y: scroll; на контейнере div, чтобы пользователь мог прокручивать в обоих направлениях, чтобы просмотреть всю таблицу. Не очень хорошее решение, я предоставляю; если возможно, я бы порекомендовал делать что-то еще целиком, но если вы этого не сделаете, это может заставить вас пойти. –

+0

Да, я видел, что полоса прокрутки будет видна всегда, когда я устанавливаю высоту контейнера div меньше размера окна. Поэтому мне, возможно, придется что-то делать с помощью js. Любые мысли о фиксированном заголовке? Чтобы заставить это прокручивать вместе с таблицей? – user1399078

+0

Вам не нужно делать ничего особенного, чтобы заставить thead прокручиваться вместе с таблицей - thead живет внутри элемента таблицы, поэтому, если вы прокручиваете контейнер вокруг всей таблицы, он должен принести thead вместе с ним , как и с телом. Можете ли вы опубликовать ссылку на пример того, с чем работаете, поэтому я вижу, что происходит? –

Смежные вопросы