Normally you can do this:
<select size="3">
<option>blah</option>
<option>blah</option>
<option>blah</option>
</select>
And it would render as a selectionbox where all three options are visible (without dropping down)
I'm looking for a way to set this size attribute from css.
I don't think that this is possible.
CSS properties are very generic (applicable to any element) and are unable to alter the functionality of an element in any ways (only the looks).
The size attribute is changing the functionality of the element at least in the case of size = 1 / size != 1.
I do not believe this is possible no
There ins't an option for setting the size, but if you do set the size some browsers will let you set the width/height properties to whatever you want via CSS.
Some = Firefox, Chrome, Safari, Opera.
Not much works in IE though (no surprise)
You could though, if you wanted, use CSS expressions in IE, to check if the size attribute is set, and if so, run JS to (re)set it to the size you want... e.g.
Try this:
In general you can't add attributes set within html via CSS. You can add to the html using the pseudo selectors :before and :after, but that's about it, plus they still aren't compatible across all browsers. If you really need to do this, I think you'd have to resort to Javascript.
You can use following CSS selector to style select items with the size attribute: