CSS-only custom-styled selects v7

Todd Parker - Filament Group Inc.

NOTE: This is still an experiement and are currently refining the targeting and styles for IE and Firefox. Once everything is settled, we will do a post on the Filament Group site. We're debating whether the tower of hacks is worth it for Firefox because it still doesn't have a reliable way to hide the native select's arrow and new versions can break this. Stay tuned.

How this works: This styles a native select consistently cross-platform with only minimal CSS. The native select is then styled so it is essentially invisible (no appearance, border, bg) leaving only the select's text visible. There is a wrapper around the select that has the majority of the button styles (gradient, shadow, border, etc.). We then add the custom arrow via a pseudo element to the right.

Confirmed to work in the following browsers

This technique seems to be functional everywhere since we're still leaving the native select in place. Worst case, the native select styling and the custom arrow will both show up but in all popular platforms, this looks very good and consistent. One minor caveat: setting the select to 110% means the menu may open up a bit wider than expected in Firefox. We set a style to set it to 100% on focus, but this doesn't seem to take effect everywhere.

Custom select styled consistently

Custom select with minor visual issues

Native select

v.38