Я начал использовать md-table для своего проекта, и мне нужна фиксированная ширина столбца. На данный момент все столбцы по ширине разделены на одинаковые размеры.
Где я могу получить документацию по размерам таблицы данных?
Я начал использовать md-table для своего проекта, и мне нужна фиксированная ширина столбца. На данный момент все столбцы по ширине разделены на одинаковые размеры.
Где я могу получить документацию по размерам таблицы данных?
Когда Material создает таблицу, он автоматически применяет два имени класса, которые вы можете использовать для стилизации каждого столбца. В приведенном ниже примере стили названы mat-column-userId
и cdk-column-userId
.
<ng-container cdkColumnDef="userId">
<md-header-cell *cdkHeaderCellDef> ID </md-header-cell>
<md-cell *cdkCellDef="let row"> {{row.id}} </md-cell>
</ng-container>
Теперь вы можете использовать эти имена в css:
.mat-column-userId {
flex: 0 0 100px;
}
Подобно ответу Рахула Патила , но вам не нужно добавлять еще один класс в определения столбцов.
.mat-header-cell
приоритет будет иметь стиль для . В качестве альтернативы вы можете просто добавить другое правило стиля для ячейки заголовка.На данный момент он еще не был представлен на уровне API. Однако вы можете добиться этого, используя что-то вроде этого
В css вам нужно добавить этот собственный класс -
Не стесняйтесь вводить логику добавления сюда класса или произвольной ширины. Он применит нестандартную ширину для столбца.
Поскольку используется md-table
flex
, нам нужно гибко указать фиксированную ширину. Это просто объясняет -0 = не расти (сокращение от flex-grow)
0 = не сжиматься (сокращение от flex-shrink)
75px = начало с 75px (сокращение от flex-base)
Plunkr здесь - https://plnkr.co/edit/v7ww6DhJ6zCaPyQhPRE8?p=preview
источник
Если вы используете в своем проекте angular / flex-layout , вы можете установить столбец с, добавив директиву fxFlex в mat-header-cell и mat-cell:
В противном случае вы можете добавить собственный CSS для достижения того же результата:
источник
Проверьте это: https://github.com/angular/material2/issues/5808
Поскольку material2 использует гибкий макет, вы можете просто установить
fxFlex="40"
(или желаемое значение для fxFlex) наmd-cell
иmd-header-cell
.источник
fxFlex="40px"
это тоже возможно,Я обнаружил, что комбинация ответов Джимдмана и Рахула Патила лучше всего работает для меня:
Кроме того, если у вас есть один «ведущий» столбец, который вы хотите всегда занимать определенное количество места на разных устройствах, я обнаружил, что следующее очень удобно для адаптации к доступной ширине контейнера в более гибком виде (это заставляет остальные столбцы равномерно используйте оставшееся пространство):
источник
В документации по материалам Angular используются
для его табличного компонента, чтобы изменить ширину столбца. Опять же, userId будет именем ячейки.
источник
Я использую FlexLayout для обновления ширины столбца в соответствии с носителем запроса, который предоставляет нам FlexLayout.
означает, что этот столбец будет использовать 30% ширины строки по умолчанию, при выполнении gt-xs @mediaQuery новая ширина будет 15% и аналогичное поведение для других условий
источник
Я просто использовал:
Замените 4 положением заголовка, ширину которого вам необходимо настроить. Примеры из документации :
Поэтому я просто изменил его, чтобы получить то, что хотел.
источник
Вы можете установить для класса .mat-cell значение flex: 0 0 200px; вместо flex: 1 вместе с nth-child.
источник
Теперь вы можете сделать это так
источник
вы можете использовать
fxFlex
"@ angular / flex-layout"th
иtd
вот так:источник
.mat-column-skills { max-width: 40px; }
источник
Вы также можете использовать селекторы элементов:
mat-header-cell:nth-child(1), mat-cell:nth-child(1) { flex: 0 0 64px; }
Но ответ jymdman - это наиболее рекомендуемый способ в большинстве случаев.
источник
Образец столбца Mat-table и соответствующий CSS:
HTML / шаблон
CSS
источник
Вы также можете добавить стиль прямо в разметку, если хотите:
источник
Если у вас слишком много столбцов таблицы и они не настраиваются в угловой таблице с помощью
md-table
, вставьте следующий стиль вcomponent.css
файл. Он будет работать как шарм с горизонтальной прокруткой.Добавьте этот стиль, чтобы изменить столбец отдельно.
Кроме того, проверьте эту ссылку , (где код выше пришел от) , более подробно.
источник
Возьмем пример. Если в вашей таблице есть следующие столбцы:
Поскольку это содержит два столбца. тогда мы можем установить ширину столбцов, используя
для этого примера мы берем
источник
У меня есть очень простое решение - установить разную ширину столбца в таблице стилей, переопределив как ячейку, так и ячейку заголовка:
Пример - установка произвольной ширины для 1-го и 5-го столбца:
.mat-cell:nth-child(1), .mat-header-cell:nth-child(1) { flex: 0 0 5%; } .mat-cell:nth-child(5), .mat-header-cell:nth-child(5) { flex: 0 0 10%; }
github
источник