Фиксированные столбцы позволяют закреплять определённые колонки
таблицы в левом или правом краю, что особенно полезно при работе с
таблицами, содержащими большое количество данных. В Element
Plus для этого используется свойство fixed
компонента <el-table-column>.
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="date" label="Дата" width="120" fixed></el-table-column>
<el-table-column prop="name" label="Имя" width="150"></el-table-column>
<el-table-column prop="address" label="Адрес" width="300"></el-table-column>
<el-table-column prop="action" label="Действия" width="150" fixed="right"></el-table-column>
</el-table>
fixed без значения закрепляет столбец слева по
умолчанию.fixed="right" закрепляет столбец справа.Фиксированные столбцы требуют явного указания ширины
(width), иначе поведение будет непредсказуемым.
Рекомендуется задавать ширину как в пикселях, так и с учётом содержимого
ячеек, чтобы избежать сжатия текста.
<el-table-column prop="email" label="Email" width="250" fixed></el-table-column>
При наличии фиксированных столбцов важно учитывать
горизонтальную прокрутку таблицы. Свойство
scroll-x управляется автоматически, если таблица имеет
ширину больше, чем контейнер.
<el-table :data="tableData" style="width: 800px">
<el-table-column prop="id" label="ID" width="80" fixed></el-table-column>
<el-table-column prop="name" label="Имя" width="150"></el-table-column>
<el-table-column prop="email" label="Email" width="200"></el-table-column>
<el-table-column prop="address" label="Адрес" width="250"></el-table-column>
<el-table-column prop="action" label="Действия" width="120" fixed="right"></el-table-column>
</el-table>
При этом таблица автоматически создаёт отдельные элементы для фиксированной части слева, центра, и фиксированной части справа, обеспечивая плавное скроллирование без смещения данных.
Можно закреплять несколько столбцов слева или
справа. Они будут размещены в порядке объявления
<el-table-column>.
<el-table :data="tableData">
<el-table-column prop="id" label="ID" width="80" fixed></el-table-column>
<el-table-column prop="name" label="Имя" width="150" fixed></el-table-column>
<el-table-column prop="email" label="Email" width="200"></el-table-column>
<el-table-column prop="phone" label="Телефон" width="150" fixed="right"></el-table-column>
<el-table-column prop="action" label="Действия" width="120" fixed="right"></el-table-column>
</el-table>
В этом примере два столбца слева и два столбца справа будут закреплены независимо от горизонтальной прокрутки.
width в пикселях.fixed и sortable работает, но
при активной сортировке фиксированные столбцы остаются на месте.Element Plus автоматически применяет классы
.el-table__fixed для закреплённых колонок. Их можно
переопределять через CSS для изменения фона, границ или тени:
.el-table__fixed {
background-color: #f9f9f9;
box-shadow: 2px 0 5px rgba(0,0,0,0.1);
}
Это позволяет визуально отделить фиксированные столбцы от основной таблицы, делая интерфейс более удобным и наглядным.
Фиксированные столбцы остаются интерактивными: поддерживаются клики,
сортировка и фильтрация. Также можно программно определить ширину или
положение фиксированных столбцов через методы и события
<el-table>, такие как header-dragend для
динамического изменения ширины.
Фиксированные столбцы в Element Plus являются мощным инструментом для управления большими таблицами, позволяя удерживать ключевые данные на виду и обеспечивать удобную навигацию по информации.