Hm, a pseudo-klasa :hover radi samo na linkovima u IE6, takođe i ova :focus nije od neke koristi. "Pokušajte ne koristiti JavaScript" :-)
A ovo drugo - trebaš širinu i visinu raspoložive površine prozora browsera ... opet pomalo zeznuta stvar jer to baš nije standardizovano kako se meri, no recimo da document.body.clientWidth i document.body.clientHeight daju zadovoljavajuće rezultate.
Potom sledi matematika da vidiš koliko elemenata možeš da smestiš horizontalno a koliko vertikalno, koliku varijaciju veličine ćeš da primeniš na pojedine da se sve to valjano uglavi ... ne zaboravi da postaviš marginu i padding body elementa na nulu ;-)
Takođe, preporuka je da isključiš border s tih inputa, kao i padding, zbog različitog računa širine i visine elemenata kod IE i u standardima.