Действительно ли невозможно вместить большую таблицу HTML в небольшое пространство?

Очевидный ответ на это, "это не возможно", или "делают данные меньшими"... Я попробовал их, и они не промывают так, я должен придумать альтернативу

Существует таблица на веб-странице, которая имеет 14 столбцов в ней. 2 из столбцов имеют текст в этом, довольно длинно (но не может перенестись - текст должен быть всеми на одной строке для каждой строки). Само собой разумеется, таблица исчезает от правой стороны экрана после приблизительно столбец 9!

Так, кто-либо может думать о волшебном решении, которое сделает это соответствие таблицы полностью на экран?

Плохие ответы:

  • Уменьшите объем данных
  • Позвольте тексту в строках переноситься на вторую строку
  • "Это не может быть сделано" - да я знаю, но кто-то где-нибудь сделает, чтобы гений ответил, или некоторая волшебная библиотека jQuery, которая делает такого рода вещь

Интригование, но больше информации было бы необходимо:

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

    например: |This является моими данными, но это... |

6
задан Brian Tompsett - 汤莱恩 1 January 2017 в 10:05
поделиться

15 ответов

Отображать текст с многоточием после 10-го символа и отображать текст подсказки с полным текстом, когда пользователь наводит на него указатель мыши…

Многоточие - это три точки… Я использую их довольно часто… Вы видели?…

16
ответ дан 8 December 2019 в 03:09
поделиться

Вы можете разбить текст на несколько строк, и он все равно будет выглядеть как одна при вырезании или копировании. Используйте тег wbr ( w or br eak) .

-1
ответ дан 8 December 2019 в 03:09
поделиться

Вы можете реализовать сетку «рыбий глаз», как то, что я сделал с помощью C # и WinForms:

alt text http://img523.imageshack.us/img523/9827/fisheye2b.jpg

Этот элемент управления предназначен для отображения таблицы с 1000 столбцами и 1000 строками. Однако я не уверен, что это было бы возможно с прямым HTML и JavaScript. Если вы хотите перейти на ActiveX, я могу вам помочь.

0
ответ дан 8 December 2019 в 03:09
поделиться

Это может быть другая идея: попробуйте использовать плагин BySlideMenu для Mootools.

Он предназначен для меню, но может быть использован для вашего стола. Взгляните на пример №4 и следующие.

0
ответ дан 8 December 2019 в 03:09
поделиться

Если бы я был на вашем месте, я бы подумал о рендеринге таблицы в iframe. Таким образом, вы можете легко получить полную таблицу нужного вам размера, и пользователю придется прокручивать, чтобы увидеть эти столбцы. Можно прикрепить событие keyPress к iframe и привязать эти нажатия клавиш для прокрутки, если вы думаете, что это упростит работу для пользователей.

Второй вариант, который я могу придумать, - это сделать все ячейки немного уже, чтобы там было немного свободного места на краю экрана. Добавьте класс к каждому элементу таблицы, указав, в какой строке он находится (это упрощает ссылки на них вместе). Прикрепите событие щелчка к таблице и используйте event.target, чтобы щелкнуть ячейку (это потребляет меньше памяти браузера, чем прикрепление события к каждой ячейке). Это событие щелчка затем расширит ширину этого столбца, чтобы отобразить все данные, и добавит метку класса в соответствующую ячейку в первой строке. Затем при следующем щелчке по ячейке в этом столбце таблица может проверить в первой строке, развернута ли она, и решить, должна ли она сжиматься до исходного состояния или расширяться. В такой большой таблице пользователей, вероятно, интересуют только корреляции между несколькими столбцами одновременно, этот метод имеет то преимущество, что только те столбцы, которые им интересны, расширяются в любой момент времени.

Третий и последний вариант, который я могу думать о том, чтобы использовать скромный div. Прикрепите элемент щелчка, как в последнем абзаце, но на этот раз пусть обработчик событий создает div над интересующей ячейкой, которая достаточно велика, чтобы содержать весь текст, а затем заставляет его исчезать, если этот div щелкают.

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

Удачи! ;)

0
ответ дан 8 December 2019 в 03:09
поделиться

Для столбцов nowrap вы можете настроить их так, чтобы текст внутри содержался в блоке div, который переходит в абсолютное положение и расширяется до необходимой ширины при наведении курсора.

Вы также можете использовать jqgrid. subgrid

Вы можете просто открыть диалоговое окно jquery ui для события onclick строки и разместить там некоторые из ваших данных.

0
ответ дан 8 December 2019 в 03:09
поделиться

Я сделаю таблицу с представлением «рыбий глаз», как док Mac.

вы можете сделать столбцы таблицы очень узкими (скажем, 5 пикселей, что позволит вам иметь более 100 столбцов) ) и самое интересное то, что когда вы наводите курсор на столбец, он полностью раскрывается, а столбцы с обеих его сторон расширяются наполовину, следующие столбцы расширяются .. немного.

Это дает хороший эффект навигации .. вы можете увидеть пример здесь

alt text
(источник: ndesign-studio.com )

1
ответ дан 8 December 2019 в 03:09
поделиться

Попробуйте это как обходной путь CSS. Вы можете поиграть со свойствами переполнения и переноса слов, чтобы получить желаемый результат.

table { 
table-layout:fixed; 
width:100%; 
overflow:scroll; 
border:1px solid #f00; 
word-wrap:none; 
} 
1
ответ дан 8 December 2019 в 03:09
поделиться

Поместить таблицу в div с перегрузкой: scroll. Вы получите горизонтальные полосы прокрутки, но таблица будет выглядеть так, как предполагалось. Пример:

<div style="width:100%;overflow:scroll;">
<table>...</table>
</div>
1
ответ дан 8 December 2019 в 03:09
поделиться

jqGrid может быть решением (в разделе Advanced-> Resizing). Я не большой поклонник таблиц данных, но, по крайней мере, он позволяет изменять размер, однако я не пробовал это с таблицей фиксированной ширины.

0
ответ дан 8 December 2019 в 03:09
поделиться

Ну, еще одно возможное решение: поменяйте местами строки и столбцы, поместив заголовки столбцов слева, а не сверху. Вам нужно будет прокручивать строки по горизонтали (но, эй, полосы прокрутки полезны), но каждая ячейка может использовать всю ширину экрана за вычетом ширины заголовка.

Таким образом, переключите оси X и Y таблицы. Не очень красиво, но может сработать.

3
ответ дан 8 December 2019 в 03:09
поделиться

Попытайтесь реализовать управление всплывающей подсказкой для тех столбцов, которые содержат большой объем текста. Например, покажите только первые 100 символов, затем вставьте какой-нибудь красивый значок в конце строки, который появится, а также красивую всплывающую подсказку, которая содержит полный текст для этого столбца. Есть хорошие подсказки jQuery, которые сделают вашу работу. Эта реализация не испортит внешний вид вашей страницы, и она довольно гибкая с точки зрения того, сколько текста вы будете показывать во всплывающей подсказке.

0
ответ дан 8 December 2019 в 03:09
поделиться

Вы можете использовать горизонтальный аккордеон в таблице, если нужно расширять только один столбец в строке за раз. Или вы можете сделать что-то вроде этого ответа (или даже этого ). В демонстрации щелкните заголовок таблицы, чтобы увидеть результат.

4
ответ дан 8 December 2019 в 03:09
поделиться

Показывать каждую логическую строку в двух реальных строках, делая их четко связанными с помощью полосок зебры?

Я могу представить себе ситуации, в которых этот будет работать, но он сильно зависит от данные.

5
ответ дан 8 December 2019 в 03:09
поделиться

Я бы разделил и зебру согласно предложению Джона вместе с вашим собственным, обрезая и отображая .... Когда пользователь наводит курсор на разрез столбца, вы можете показать прямоугольник во всю ширину откусил полное содержание. Щелчок, когда отображается поле, не позволяет ему исчезнуть при перемещении мыши в другой столбец, чтобы пользователи могли копировать / вставлять и т. Д.

0
ответ дан 8 December 2019 в 03:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: