Ukrywasz prawdziwego checkbox-a, select-a za pomocą JS. Następnie w to miejsce dajesz inny element - div, img - cokolwiek i po kinięciu na ten inny element zmieniasz jego wygląd + zmieniasz wartość tego ukrytego checkbox-a, select-a. Przy wysyłaniu formularza, wyśle się właśnie ten ukryty checkbox, select Dokładny wygląd zastąpi właśnie ten inny element, który ostylujesz w CSS.
--edit--
Cytat
z jakich rozwiązań Wy korzystacie ? co będzie najprostsze i najlepsze ?
Ja właśnie sam sobie napiszę, coś takiego według instrukcji powyżej. Większość jednak skorzysta z gotowców - poszukaj w Google a na pewno znajdziesz, bo jest tego sporo.
Tu masz przykład:
http://kamil.contrel.pl/select_js/ - zrobione przeze mnie, ale trochę niedopracowane