Por que esto te sucede:
Si dandole atributos en style="" te funciona cuando darselo en la hoja de estilos no te funcionaba, es muuuuy probable que la razon sera por que tenias otra instruccion con mas prioridad que la que estabas escribiendo. Es decir, que probablemente tenias en tu css dos condiciones parecidas que ambas afectaban al mismo objeto. La tuya no funcionaba, por que la otra tenia prioridad, pero al usar Style="" ( que es la manera de hacerlo que mayor prioridad tiene ), escribiste una condicion que tenia prioridad sobre ella, y funcionó.
Si realmente te interesa dejarlo bien escrito, yo que vos vuelvo a revisar el css, busco las dos condiciones que conflictuaban, corrijo eso, y elimino el style="" que entonces se volveria innecesario.