When it comes to styling select boxes, practicality can be an issue, especially if you need full cross-browser support. One common approach is to hide the select box and create a styled imitation of it, using jQuery plug-ins.
Conceal and Simulate the Button
A safe way to restyle a select box (without needing IE6 support) is to make the select box transparent and overlay it on top of a div styled as desired. The user sees the styled button while the actual button handles UI events. This method works in most browsers except for IE6, which doesn't support opacity on select boxes.
An example of this can be seen in demos for jQuery Uniform.
This is about as far as you can style a select box without affecting usability and accessibility too much. It's straightforward enough for individuals to implement on their own if necessary, even without a plug-in or jQuery. However, the downside is that styling options for the dropdown menu are limited, though the button itself can be fully styled.
Conceal and Simulate the Entire Select Box
Another option is to completely hide the select box and replace both the button and dropdown menu with a fully styled imitation. In this case, all UI events will be handled by the imitation.
For examples of this, check out demos for jqTransform and UI Selectmenu.
With this method, both the button and dropdown menu can be fully styled, but there may be a loss of usability and accessibility. Screenreaders may not work well, and touch device users won't see the native picker pop-up when clicking the select box. Plus, this approach is often too complex for most people to implement without using a plug-in.