Столбцы таблицы CSS не выстраиваются - PullRequest
1 голос
/ 27 сентября 2011

У меня есть следующий пример таблицы: http://jsfiddle.net/Lu9y3/

Это основано на примере Telerik здесь: http://demos.telerik.com/aspnet-mvc/Grid/Paging?theme=vista, который является компонентом пользовательского интерфейса, который я использую в приложении, которое я создаю.

Как вы можете видеть, они используют две отдельные таблицы для получения фиксированного заголовка и прокручиваемого содержимого. НО заголовки и столбцы в обеих таблицах по-прежнему выровнены правильно.

Даже если я REMOVE стиль из <col> в примерах Telerik с использованием Web Inspector, столбцы все равно будут выровнены ... И они НЕ используют jQuery для настройки ширина. Так почему же они выстроили свои колонны, а мои нет?

Как они это делают?

Ответы [ 3 ]

3 голосов
/ 28 сентября 2011

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

Использование table-layout:fixed поможет, но все столбцы будут равномерно распределены независимо от содержимого.Я рекомендую установить width для каждого столбца, или, что еще лучше, сделать class для каждой ширины и повторно использовать его в соответствующих столбцах.

Образец с выравниванием

Я не использую классы в своем примере, но я думаю, вы поняли идею.Я использовал overflow:hidden для th и td, чтобы убедиться, что более длинный контент не отображается над другими ячейками таблицы.Я также думаю, что визуальный эффект таблицы работает лучше: меньшее количество столбцов, семь или восемь столбцов, может быть немного излишним, но это мое личное мнение.

1 голос
/ 28 сентября 2011

Использование table-layout: fixed; делает таблицу выравниванием;)

0 голосов
/ 27 сентября 2011

Я использую Google Chrome, и когда я открываю редактор (F12) на сайте Telerik и меняю настройки, они начинают не выравниваться. Я провел некоторое исследование, и, согласно W3.org на <col>, похоже, нет никакого способа дать глобальное имя <col>, которое можно использовать в нескольких тальбах (к сожалению).

Кроме того, в примере Telerik, похоже, что определения <col> указывают ширину в самом теге (вероятно, вручную, через какой-то JS). Я думаю, что это единственный способ сделать это, кроме установки определенных правил CSS, но это может не сработать так же, как более динамичное решение.

Удачи!

...