bug(TABLE): 'sticky' directive positions column in wrong place when using more than one 'mat-header-row' on the table
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 25k
- Forks
- 6.8k
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 91
Description
Description
It is known that you can set sticky directive for more than one matColumnDef. It is also known that you can have more than one row of table heading (mat-header-row). However, with more than one mat-header-row the sticky feature breaks the table layout.
Reproduction
https://stackblitz.com/edit/cdk-table-multi-row-heading-sticky-column
Steps to reproduce:
- Open the stackblitz, play a bit with
stickydirective after reading expected and actual behavior.
Expected Behavior
- Both columns are sticky -
1stand2ndand in proper place - If
stickyis applied to column with colspan, I expect both 'spanned' columns below it should be sticky
Actual Behavior
What behavior did you actually see?
-
1stand2ndcolumns are sticky, but2ndcolumn is missplaced (has moved to the right), covering another column nameditem.

-
If you add
stickyto the 'grouping' headerno.it only makes group header cell to be sticky - not the whole 2 collumns with1stand2ndvalues.
Environment
- Angular: 11.2.3
- CDK/Material: 11.2.2
- Browser(s): Chrome Version 88.0.4324.182 (Official Build) (64-bit)
- Operating System (e.g. Windows, macOS, Ubuntu): Windows 10
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by opening the linked StackBlitz reproduction and inspect src/app/app.component.html, focusing on the multiple mat-header-row elements and sticky directives. Reproduce both reported cases, then trace the Angular CDK/Material table sticky behavior. Done means sticky columns remain in the correct position and a sticky colspan header keeps its spanned columns sticky.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- angular, typescript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100