Bom, na verdade a pergunta foi só pro título do post ficar bonito. Eu não tenho dúvidas: Checkboxes são muito melhores.
(aliás, selects multiple nem deveriam existir).
Selects multiples são péssimos:
- Péssimos pro visitante - que tem que usar o shift pra escolher mais de um (que visitante sabe fazer isso?)
- Péssimos pro desenvolvedor - na hora do html e na hora de tratar os dados no server-side (php, asp, etc).
- Péssimos pra estilizar o visual - Alterar visual CSS de selects é quase impossível.
Quando um formulário tem select multiple, ou o desenvolvedor tem que escrever "(pressione shift ou control para escolher mais de uma)" OU o desenvolvedor tem que brigar com javascript e plugins pra deixar a coisa melhor pro visitante.
Uma solução? Usar Checkboxes:
É só estilizar eles pra ficarem parecidos com uma caixa de select multiple.
Exemplo (veja funcionando neste link):
<style> /* coloque este estilo em seu arquivo css */ .check-select-multiple {border: 2px inset #DDD; background: white; height: 60px; overflow-y: scroll; width: 300px;}</style> <div class="check-select-multiple"> <label><input name="cidades" type="checkbox" value="1" />Goiânia</label> <label><input name="cidades" type="checkbox" value="2" />Palmas</label> <label><input name="cidades" type="checkbox" value="3" />Fortaleza</label> <label><input name="cidades" type="checkbox" value="4" />São Paulo</label> <label><input name="cidades" type="checkbox" value="5" />Salvador</label> </div>
Muito melhor, e mais fácil pro visitante.
Veja que não precisamos fazer malabarismos com javascripts nem plugins pra Jquery. É só usar a simplicidade do belo HTML+CSS.
Além da facilidade pro visitante, ainda é infinitamente mais fácil estilizar uma DIV e inputs do que estilizar um Select (principalmente nos IEs da vida).
Se você gostou da minha explanação, abrace esta campanha também. Diga adeus ao select-multiple.
Faça um link para esta campanha, compartilhe no twitter, facebook, google-plus, faça bandeiras, passeatas, greve de fome...
Fonte: meu blog ElMicox