JSFiddle - React, Tailwind, and code Playground
HTML
<h1>How to remove the select arrow in Firefox</h1>
<select>
<option>Fidrefox</option>
<option>Chrome</option>
<option>Internet Explorer</option>
<option>Safari</option>
</select>
<h2>It's as <del>hacky</del> simple as that:</h2>
<ol>
<li>Set <code>-prefix-appearance</code> to none to remove the styles;</li>
<li>Use <code>text-indent</code> to "push" the content a bit to the right;</li>
<li>Finally, set <code>text-overflow</code> to an empty string. Everything that extends beyond it's width will become... nothing! <strong>And that includes the arrow.</strong></li>
</ol>
<h2>More info and background:</h2>
<p>Check <a href="https://gist.github.com/joaocunha/6273016">my gist</a>.</p>
<h2>Brought to you by</h2>
<p><a href="http://twitter.com/joaocunha">@joaocunha</a> - follow the guy!</p>
<small>Thanks <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=649849#c85">Binyamin</a> for improving the indentation size</small>
CSS
select {
-moz-appearance: none;
text-indent: 0.01px;
text-overflow: '';
color: red;
}
select:-moz-focusring {
color: transparent;
text-shadow: 0 0 0 #000;
}
/*
## Chrome ##
select {
-webkit-appearance: none;
}
## IE10 ##
select::-ms-expand {
display: none;
}
## IE < 10 ##
Probably position:absolute; and clip:rect; would do the trick
*/
/* == general styling, nothing to do with the fix == */
body {
font-family: verdana, arial, sans-serif;
font-size: 12px;
color: #333;
}
h1 {
text-align: center;
font-size: 24px;
margin-bottom: 36px;
}
h2 {
font-size: 18px;
margin-top: 36px;
}
code {
background: #ccc;
font-family: courier, monospaced;
padding: 0 5px;
}
del {
color:#ccc;
}
li {
margin: 10px;
}
a {
font-weight: bold;
}
small {
color: #ccc;
}
JavaScript
// sorry, nothing to see here :)