it-swarm.com.ru

Горизонтальная прокрутка при переполнении таблицы

У меня есть основной стол в контейнере. Таблица будет иметь около 25 столбцов. Я пытаюсь добавить горизонтальную полосу прокрутки при переполнении таблицы, и мне действительно тяжело. 

Сейчас происходит то, что ячейки таблицы вмещают содержимое ячеек, автоматически регулируя высоту ячейки и поддерживая фиксированную ширину таблицы.

Я ценю любые предложения о том, почему мой метод не работает, как это исправить.

Спасибо заранее!

CSS

.search-table-outter {margin-bottom:30px; }
.search-table{table-layout: fixed; margin:40px auto 0px auto;  overflow-x:scroll; }
.search-table, td, th{border-collapse:collapse; border:1px solid #777;}
th{padding:20px 7px; font-size:15px; color:#444; background:#66C2E0;}
td{padding:5px 10px; height:35px;}
tr:nth-child(even)  {background: #f5f5f5;}
tr:nth-child(odd)   {background: #FFF;}

HTML

<div class="search-table-outter wrapper">
    <table class="search-table inner">
        <tr>
            <th>Col1</th>
            <th>col2</th>
            <th>col3</th>
            <th>col4</th>
            <th>col5</th>
            <th>col5</th>
        </tr>
        <?php echo $rows; ?>
    </table>
</div>

JS fiddle (Примечание: если возможно, я бы хотел, чтобы горизонтальная полоса прокрутки находилась в контейнере с красной рамкой): http://jsfiddle.net/ZXnqM/3/

48
AnchovyLegend

Я думаю, что ваше переполнение должно быть на внешнем контейнере. Вы также можете явно установить минимальную ширину для столбцов. Как это:

.search-table-outter { overflow-x: scroll; }
th, td { min-width: 200px; }

Скрипка: http://jsfiddle.net/5WsEt/

91
mayabelle

Если я серьезно не понял ваш вопрос, переместите overflow-x:scroll из .search-table в .search-table-outter.

http://jsfiddle.net/ZXnqM/4/

.search-table-outter {border:2px solid red; overflow-x:scroll;}
.search-table{table-layout: fixed; margin:40px auto 0px auto;   }

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

6
TreeTree
   .search-table-outter {border:2px solid red; overflow-x:scroll;}
   .search-table{table-layout: fixed; margin:40px auto 0px auto;   }
   .search-table, td, th{border-collapse:collapse; border:1px solid #777;}
   th{padding:20px 7px; font-size:15px; color:#444; background:#66C2E0;}
   td{padding:5px 10px; height:35px;}

Вы должны предоставить прокрутку в div.

0
surbhi bakshi

Решение, о котором никто не упомянул, - это использовать white-space: nowrap для таблицы и добавить overflow-x в оболочку. 

( http://jsfiddle.net/xc7jLuyx/11/

CSS

.wrapper { overflow-x: auto; }
.wrapper table { white-space: nowrap }

HTML

<div class="wrapper">
    <table></table>
</div>

Это идеальный сценарий, если вы не хотите строки с несколькими строками. Чтобы добавить строки, вам нужно использовать <br/>.

0
The.Bear