JSFiddle - React, Tailwind, and code Playground
HTML
<div class="select-wrapper">
<select>
<option selected="selected" value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
<option value="4">Option 4</option>
<option value="5">Option 5</option>
</select>
</div>
CSS
.select-wrapper {
background: 12px 11px no-repeat, -moz-linear-gradient(top, #f7f7f8 0%, #ffffff 100%);
background: 12px 11px no-repeat, -webkit-linear-gradient(top, #f7f7f8 0%, #ffffff 100%);
background: 12px 11px no-repeat, -o-linear-gradient(top, #f7f7f8 0%, #ffffff 100%);
background: 12px 11px no-repeat, -ms-linear-gradient(top, #f7f7f8 0%, #ffffff 100%);
margin: 5px 10px 5px 10px;
background: 12px 11px no-repeat, linear-gradient(to bottom, #f7f7f8 0%, #ffffff 100%);
border-radius: 3px;
border: none;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset, 0 -1px 0 rgba(0, 0, 0, 0.05) inset;
-webkit-transition: all 0.2s linear;
-moz-transition: all 0.2s linear;
-ms-transition: all 0.2s linear;
-o-transition: all 0.2s linear;
transition: all 0.2s linear;
font-family: "Helvetica Neue", sans-serif;
font-size: 13px;
color: #222222;
position: relative;
height: 36px;
width: 300px;
padding-left: 10px;
}
select {
position: absolute;
left: 0;
top: 0;
opacity : 0;
width: 240px;
height: 30px;
padding: 5px 0;
border: none;
background: transparent !important;
-webkit-appearance: none;
}
.select-wrapper span {
display: block;
width: 210px;
height: 30px;
line-height: 30px;
padding: 0 0 0 5px;
}
JavaScript
$(document).ready(function() {
$('select').after('<span>' + $('option:selected', this).text() + '</span>');
$('select').click(function(event) {
$(this).siblings('span').remove();
$(this).after('<span>' + $('option:selected', this).text() + '</span>');
});
})