I have tried the different combinations of width
& device-width
but on the iPhone in landscape this code never turns the background red;
I
Take a look at this resource, will give you media queries for pretty much everything http://arcsec.ca/media-query-builder/ , you need to be be specifying a min width aswell. also less of the !important, dirty :)
in your case
@media only all and (min-device-width: 320px) and (max-device-width: 480px) {
/* insert styles here */
}