I have the same problem, wanted to make sorting for a table, like in Excel. Turns out setting the width of <select>
element to 1rem
is just enough for the arrow to appear, but not any text.
Downside is that the selected text will not appear, but this can be changed with JavaScript, or even CSS. Also the arrow won't ben centered, but in these situations you want no border, no background and no padding.
select {
width: 1rem;
padding: 0;
border: none;
background: transparent;
}
<select>
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
</select>