현재 정렬 된 열의 헤더에 아이콘이 표시되는 "정렬 가능"테이블이 있습니다.
정렬 아이콘은 텍스트 끝에 표시됩니다 (즉, LTR / RTL을 지원합니다). 현재을 사용하고 display:flex
있습니다. 그러나 테이블 너비가 줄어들고 열 머리글 텍스트가 줄 바꿈되기 시작하면 어떤 열이 정렬되어 있는지 명확하지 않은 모호한 상태가됩니다.
대신 다음 요구 사항을 충족하고 싶습니다.
- 줄 바꿈 셀 / 버튼이 더 넓은 경우에도 아이콘은 항상 가장 긴 텍스트 줄의 "끝"과 "단단하게"정렬됩니다 .
- 아이콘은 또한 마지막 텍스트 행에 맞춰 정렬되어야합니다.
- 아이콘이 자체 줄로 바뀌지 않아야합니다.
- 버튼이 있어야하며 셀의 전체 너비에 걸쳐 있어야합니다. (내부 스타일과 마크 업은 필요에 따라 변경 될 수 있습니다.)
- 가능한 경우에만 CSS와 HTML.
- 알려진 / 설정된 열 너비 또는 머리글 텍스트에 의존 할 수 없습니다.
예를 들면 다음과 같습니다.
나는 다른 조합의 무리와 함께 실험을 봤는데 display: inline/inline-block/flex/grid
, position
, ::before/::after
, 심지어 float
(!)하지만, 원하는 동작을 얻을 수 없습니다. 문제를 보여주는 현재 코드는 다음과 같습니다.
.table {
border-collapse: collapse;
width: 100%;
}
.thead {
border-bottom: 3px solid #d0d3d3;
}
.thead .tr {
vertical-align: bottom;
}
.button {
padding: 1rem;
text-align: start;
font-family: Arial, "noto sans", sans-serif;
font-size: 0.875rem;
border: 0;
background-color: transparent;
width: 100%;
display: flex;
align-items: flex-end;
font-weight: bold;
line-height: 1.4;
}
.sort {
width: 1.25rem;
height: 1.25rem;
}
<table class="table">
<thead class="thead">
<tr class="tr">
<th class="th">
<button class="button">
Age
<span class="sort"></span>
</button>
</th>
<th class="th">
<button class="button">
Favorite Food
<span class="sort"></span>
</button>
</th>
<th class="th" aria-sort="ascending">
<button class="button">
Favorite Color
<span class="sort">
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="presentation" style="width: 1.25rem; height: 1.25rem;"> <path d="M11.4709 4.2136C11.7638 3.92071 12.2386 3.92071 12.5315 4.2136L17.1277 8.8098C17.4206 9.10269 17.4206 9.57756 17.1277 9.87046C16.8348 10.1633 16.3599 10.1633 16.0671 9.87046L12.7512 6.55459V19.25C12.7512 19.6642 12.4154 20 12.0012 20C11.587 20 11.2512 19.6642 11.2512 19.25V6.55459L7.93533 9.87046C7.64244 10.1633 7.16756 10.1633 6.87467 9.87046C6.58178 9.57756 6.58178 9.10269 6.87467 8.8098L11.4709 4.2136Z"> </path></svg>
</span>
</button>
</th>
<th class="th">
<button class="button">
Likes Neil Diamond?
<span class="sort"></span>
</button>
</th>
</tr>
</thead>
</table>
이 UI를 달성하는 방법에 대한 아이디어가 있습니까? 이것은 아마도 테이블이나 버튼과 관련이 거의 없습니다. 실제로 나는 Thing A
"단단하게"아래쪽 / 끝이 Thing B
(가로 넓게 조정되고 텍스트를 Thing A
줄 바꿈 할 수 있음 ) 정렬되어야 하지만 자체 줄로 줄 바꿈 할 수는 없습니다.
flex
값을 엉망으로 만들려고 했지만 조합을 사용하면 텍스트가 너무 빨리 줄 바꿈됩니다.