HTML таблица, горизонтальная прокрутка, которая отслеживает заголовки и вертикальная прокрутка - проблема с шириной текста

Хорошо, во-первых, извинения, если вы узнаете некоторые из моих предыдущих постов сегодня. У меня есть фрагмент HTML, который я написал, и это был единственный способ сделать это.

  • Горизонтальная прокрутка, которая следует, удерживает thead, выровненный с телом, поскольку Вы перемещаете тело
  • Вертикальная прокрутка, которая все еще держит thead в поле зрения.

Единственный способ сделать это - использовать две таблицы. Это работает и не стесняйтесь попробовать. Однако у меня проблема с тем, как ширина столбцов определяется размером текста внутри них, а не свойством width, которое я установил. Кто-нибудь может помочь?

Я просто хочу, чтобы ширина столбца означала ширину столбца

РЕДАКТИРОВАТЬ: причина ширины 1200 заключается в том, что внутри переполнения div фактический размер 8x 150px

    <script type='text/javascript'>
        function MatchScroll(SourceID, TargetID, DoIfMoz) {
                if (DoIfMoz || navigator.userAgent.indexOf("Firefox") == -1) document.getElementById(TargetID).scrollLeft = document.getElementById(SourceID).scrollLeft;
        }
    </script>

    <div id='HeaderTable'  style='width:883px;overflow:auto;overflow-y:hidden;overflow-x:hidden;'>
        <table border='1'   id='HeaderTable' style='width:1200px;float:left;table-layout:fixed;'>
            <thead style='text-align:left;'>
                <tr style='display:block;margin-left:1px;'>
                    <th width='150' style='width:150px;'>t</th>
                    <th width='150' style='width:150px;'>t</th>
                    <th width='150' style='width:150px;'>tt</th>
                    <th width='150' style='width:150px;'>t</th>
                    <th width='150' style='width:150px;'>t</th>
                    <th width='150' style='width:150px;'>ttttt</th>
                    <th width='150' style='width:150px;'>ttttt</th>
                    <th width='150' style='width:150px;'>tt</th>
                </tr>
            </thead>
        </table>
    </div>
    <div id='DataTable' style='height:300px;float:left;overflow:auto;overflow-x:auto;overflow-y:scroll;width:900px;'  onmouseup="MatchScroll('DataTable','HeaderTable', true);" onmousemove="MatchScroll('DataTable','HeaderTable', false);"     >
        <table border='1' style='width:1200px;float:left;table-layout:fixed;'>
            <tbody id='ClearDetails'>
                <tr id='Row0' style='color:black;height:auto;display:block;'>
                    <td style='width:150px;'>1</td>
                    <td style='width:150px;'>1</td>
                    <td style='width:150px;'>1</td>
                    <td style='width:150px;'>1</td>
                    <td style='width:150px;'>1111111111</td>
                    <td style='width:150px;'>1</td>
                    <td style='width:150px;'>1</td>
                    <td style='width:150px;'>1</td>
                </tr>
            </tbody>
        </table>
    </div>

2 ответа

Я не знаю, насколько велик весь ваш проект, но есть плагин jquery dataTable для решения этой проблемы.

У него много вариантов работы с таблицами. Я предлагаю вам использовать файл "jquery.min", если вы просто хотите реализовать несколько опций.

В CSS width: x задает минимальную ширину, поэтому браузер может расширить столбец, чтобы уместить текст в теле таблицы, которое превышает его.

Другие вопросы по тегам