Bien, si es sólo un efecto visual (no verificación del valor y su tipo) sólo si se ha rellenado el campo aunque sea zzzz optaría por:
Código CSS:
Ver originalinput:not(:empty) {
/* aquí los estilos */
}
Sabiendo que ie8 e inferiores no lo soportan (hablo de memoria). Verifique cuáles sí y no en
www.caniuse.com