Как создать таблицу HTML с настраиваемыми столбцами?

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

Вы знаете, что можете просто посмотреть исходный код страницы в своем браузере, и он расскажет вам, как они это делают, не так ли?

Mecki 25.09.2008 18:38

Хотя я мог «заглянуть под кимоно», я попросил у квеста объяснить ответ.

minty 25.09.2008 18:45
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
9
2
16 474
7

Ответы 7

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

Понятие простое, реализация сложная.

Chris Noe 25.09.2008 18:40

Виджет Yahoo UI (YUI) Таблица данных позволяет изменять размер столбцов. Он общедоступен, но все еще находится в стадии бета-тестирования, а библиотека YUI довольно громоздка. Любая реализация должна быть на JavaScript / DHTML, потому что таблицы HTML по умолчанию не имеют таких возможностей.

Вы ищете эффект внешнего вида или есть <->, чтобы показать вам, как изменить размер таблицы?

  • Для этого я создал div или ячейку шириной всего в пару пикселей.
  • Я меняю курсор так, чтобы он стал стрелкой <->.
  • При нажатии на использование этого элемента управления div
  • При нажатии на использование этого элемента управления div я создаю на лету еще один «плавающий» div, который показывает, где они в конечном итоге его разместят.
  • Движение привязано к событию перемещения мыши в JavaScript.
  • После отпускания элемента управления я перемещаю высоту или ширину ячейки таблицы в соответствии с тем, куда они переместили новый элемент управления.

Звучит достаточно просто.

Vincent 11.06.2014 20:06

Нет простого ответа, такого как «используйте какое-нибудь свойство foobar html». Это делается с помощью манипуляций с javascript и DOM.
Если вам интересно увидеть реализацию этой функции с помощью Prototype, вы можете взглянуть на TableKit.
Я уверен, что там есть реализации jQuery ... Мне нравится мой старый добрый прототип;)

Flexigrid для jQuery кажется довольно приятным.

Обновлять: Согласно комментарию @Vincent использование действительно простое ... см. Сайт для получения полной информации, однако для самого простого примера - включите скрипт, а затем подключите функциональность к своей таблице:

$('#myTableID').flexigrid();

или с опциями:

$('.classOfTables').flexigrid({height:'auto',striped:false});

Я не знаю, почему это не было выбрано в качестве выбранного ответа или почему за него не проголосовали больше, но это действительно полезно. Спасибо!

Kenn Cal 24.07.2013 11:53

Хотя эта сетка имеет регулируемую ширину столбцов, она не отвечает на вопрос о том, как реализовать такую ​​функциональность в настраиваемой таблице.

Vincent 11.06.2014 20:03

На данный момент Flexgrid практически не обслуживается. Сайт не работает, github не обновлялся с 2014 года и т. д.

Jesse W at Z - Given up on SE 08.03.2016 02:31

Добавьте этот CSS, чтобы сделать ширину столбцов таблицы регулируемой ...

 th {resize:horizontal; overflow:auto;}

Чистое золото прямо здесь ...

Timothy Harris 26.02.2021 19:50

Применение resize:horizontal к <th> не помогло с моим FF58. Вместо этого я создал <div> в каждом из них и сделал его изменяемым:

.mytable th div{
    resize:horizontal;
    overflow: auto;
}

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