How can I completely change the design of a <select> element? For example, this is how I want my dropdown to look:
Is there a way to do it with CSS? If not, jQuery?
Best Answer
CSS will only help you in certain browsers - for instance, Internet Explorer will ignore it for SELECTs completely
you can, however, still use an ordinary select on page without any CSS whatsoever and then use a jQuery plugin that degrades gracefully (so when people don't have JS enabled, they will still see that original select box)
however, as pointed out by clonked in comments - use at least some browser sniffing to check whether people are not accessing that menu from iPhone or similar devices, as they might have problems accessing that JS select box
Best Answer
CSS will only help you in certain browsers - for instance, Internet Explorer will ignore it for SELECTs completely
you can, however, still use an ordinary select on page without any CSS whatsoever and then use a jQuery plugin that degrades gracefully (so when people don't have JS enabled, they will still see that original select box)
one of such plugins is this great jQuery UI selectmenu from Filament Group
however, as pointed out by clonked in comments - use at least some browser sniffing to check whether people are not accessing that menu from iPhone or similar devices, as they might have problems accessing that JS select box
if you're by any chance using PHP on the server side, here's a nice browser sniffing library for you: http://chrisschuld.com/projects/browser-php-detecting-a-users-browser-from-php/