Add sorting arrows to <th> like table sorter
The best solution without images, pure CSS. Just put the classnames headerSortDown
and headerSortUp
on the td
or th
rows and the caret will appear.
table td,
table th {
border: 1px solid silver;
}
.headerSortDown:after,
.headerSortUp:after {
content: ' ';
position: relative;
left: 2px;
border: 8px solid transparent;
}
.headerSortDown:after {
top: 10px;
border-top-color: silver;
}
.headerSortUp:after {
bottom: 15px;
border-bottom-color: silver;
}
.headerSortDown,
.headerSortUp {
padding-right: 10px;
}
<table>
<thead>
<tr>
<th class="headerSortDown">ID</th>
<th class="headerSortUp">Username</th>
<th>Fullname</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>John</td>
<td>John Doe</td>
</tr>
<tr>
<td>2</td>
<td>Jenny</td>
<td>Jenny Smith</td>
</tr>
<tr>
<td>3</td>
<td>Tom</td>
<td>Tom Doe</td>
</tr>
</tbody>
</table>
Also check my JSFiddle: http://jsfiddle.net/rTXXz/ for a working example.
UPDATE: Fixed for chrome
I get invalid property value
in chrome.
With quotes it works:
background: url("data:image/gif;base64, R0lGODlhFQAJAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw=") no-repeat 99%;
I converted the double arrow to base64, too.
JSFiddle