Skip to content

Commit 85f9491

Browse files
crisbetotinayuangao
authored andcommitted
fix(paginator): first/last icons being thrown off on IE and Edge; simplify icon setup (#9776)
* Fixes the paginator icons being thrown off on IE and Edge. * Simplifies the paginator's icon setup by using the SVG icons, rather than trying to construct them through CSS. Using SVGs has the advantage of requiring a lot less code, being more consistent across browsers and being easier to center vertically.
1 parent 3074b45 commit 85f9491

File tree

2 files changed

+20
-70
lines changed

2 files changed

+20
-70
lines changed

src/lib/paginator/paginator.html

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,9 @@
3333
[matTooltipPosition]="'above'"
3434
[disabled]="!hasPreviousPage()"
3535
*ngIf="showFirstLastButtons">
36-
<div class="mat-paginator-first"></div>
37-
<div class="mat-paginator-decrement"></div>
36+
<svg class="mat-paginator-icon" viewBox="0 0 24 24" focusable="false">
37+
<path d="M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"/>
38+
</svg>
3839
</button>
3940
<button mat-icon-button type="button"
4041
class="mat-paginator-navigation-previous"
@@ -43,7 +44,9 @@
4344
[matTooltip]="_intl.previousPageLabel"
4445
[matTooltipPosition]="'above'"
4546
[disabled]="!hasPreviousPage()">
46-
<div class="mat-paginator-decrement"></div>
47+
<svg class="mat-paginator-icon" viewBox="0 0 24 24" focusable="false">
48+
<path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/>
49+
</svg>
4750
</button>
4851
<button mat-icon-button type="button"
4952
class="mat-paginator-navigation-next"
@@ -52,7 +55,9 @@
5255
[matTooltip]="_intl.nextPageLabel"
5356
[matTooltipPosition]="'above'"
5457
[disabled]="!hasNextPage()">
55-
<div class="mat-paginator-increment"></div>
58+
<svg class="mat-paginator-icon" viewBox="0 0 24 24" focusable="false">
59+
<path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>
60+
</svg>
5661
</button>
5762
<button mat-icon-button type="button"
5863
class="mat-paginator-navigation-last"
@@ -62,8 +67,9 @@
6267
[matTooltipPosition]="'above'"
6368
[disabled]="!hasNextPage()"
6469
*ngIf="showFirstLastButtons">
65-
<div class="mat-paginator-increment"></div>
66-
<div class="mat-paginator-last"></div>
70+
<svg class="mat-paginator-icon" viewBox="0 0 24 24" focusable="false">
71+
<path d="M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"/>
72+
</svg>
6773
</button>
6874
</div>
6975
</div>

src/lib/paginator/paginator.scss

Lines changed: 8 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -60,73 +60,17 @@ $mat-paginator-button-last-increment-icon-margin: 9px;
6060
margin: $mat-paginator-range-label-margin;
6161
}
6262

63-
.mat-paginator-decrement-button + .mat-paginator-decrement-button {
64-
margin: 0 0 0 $mat-paginator-button-margin;
65-
66-
[dir='rtl'] & {
67-
margin: 0 $mat-paginator-button-margin 0 0;
68-
}
69-
}
70-
71-
.mat-paginator-decrement,
72-
.mat-paginator-increment {
73-
width: $mat-paginator-button-icon-width;
74-
height: $mat-paginator-button-icon-height;
75-
}
76-
77-
.mat-paginator-increment,
78-
[dir='rtl'] .mat-paginator-decrement {
79-
transform: rotate(45deg);
80-
}
81-
.mat-paginator-decrement,
82-
[dir='rtl'] .mat-paginator-increment {
83-
transform: rotate(225deg);
63+
.mat-paginator-range-actions {
64+
display: flex;
65+
align-items: center;
66+
min-height: $mat-paginator-range-actions-min-height;
8467
}
8568

86-
.mat-paginator-increment {
87-
margin-left: $mat-paginator-button-increment-icon-margin;
88-
[dir='rtl'] & {
89-
margin-right: $mat-paginator-button-increment-icon-margin;
90-
}
91-
}
69+
.mat-paginator-icon {
70+
width: $mat-paginator-height / 2;
71+
fill: currentColor;
9272

93-
.mat-paginator-decrement {
94-
margin-left: $mat-paginator-button-decrement-icon-margin;
9573
[dir='rtl'] & {
96-
margin-right: $mat-paginator-button-decrement-icon-margin;
74+
transform: rotate(180deg);
9775
}
9876
}
99-
100-
.mat-paginator-first {
101-
transform: rotate(90deg);
102-
width: $mat-paginator-button-first-last-icon-width;
103-
height: $mat-paginator-button-icon-height;
104-
float:left;
105-
margin-left: $mat-paginator-button-first-icon-margin;
106-
}
107-
108-
.mat-paginator-navigation-first {
109-
.mat-paginator-decrement {
110-
margin-left: $mat-paginator-button-first-decrement-icon-margin;
111-
}
112-
}
113-
114-
.mat-paginator-navigation-last {
115-
.mat-paginator-increment {
116-
float: left;
117-
margin-left: $mat-paginator-button-last-increment-icon-margin;
118-
}
119-
}
120-
121-
.mat-paginator-last {
122-
transform: rotate(90deg);
123-
width: $mat-paginator-button-first-last-icon-width;
124-
height: $mat-paginator-button-icon-height;
125-
margin-left: $mat-paginator-button-last-icon-margin;
126-
}
127-
128-
.mat-paginator-range-actions {
129-
display: flex;
130-
align-items: center;
131-
min-height: $mat-paginator-range-actions-min-height;
132-
}

0 commit comments

Comments
 (0)