CheckSelect: The new solution to the usability problems of <select multiple>

The old solution: <select multiple>

This uses no javascript at all, and is the old way of doing things, using a <select> element with the multiple attribute.

Pros:

Cons:

HTML:

<select multiple name="state-select">
	<option value="AL">Alabama</option>
	[...]
	<option value="WY">Wyoming</option>
</select>

CSS:

Virtually none to speak of.

The new solution: .checkselect

This uses no javascript at all, and is a new way of doing things. I am using CSS to emulate the <select multiple> using a list, checkboxes, and labels while improving the usability and obvious method of use.

Pros:

Cons:

HTML:

<ul class="checkselect">
	<li>
		<input type="checkbox" name="state-checkselect" id="state-checkselect-AL" value="AL" />
		<label for="state-checkselect-AL>Alabama<label>
	</li>
	[...]
	<li>
                <input type="checkbox" name="state-checkselect" id="state-checkselect-WY" value="WY" />
                <label for="state-checkselect-WY>Wyoming<label>
        </li>
</ul>

CSS:

View the source of this page to see the relevant CSS for .checkselect. There's not much to it.