No se puede aplicar estilo a un botón de entrada de archivo con CSS. Este no es el único elemento que no puedes diseñar. Algunas otras entradas no aceptan estilos. Mira esto fiddle para ver muchos tipos de entradas. Según su navegador, algunas entradas se muestran de manera diferente. Las entradas como la entrada de rango o las entradas de fecha usan una interfaz de usuario de nivel de sistema operativo que no es editable por CSS.
Lo que puede hacer es ocultar la entrada de archivo y mostrar otro elemento como un div u otra entrada que acepte estilo como entrada de tipo de botón como su entrada de archivo y desencadenar desencadenar clic y enviar eventos (hit enter) en su hided real entrada de archivo.
Código ejemplo:
HTML
<input type="file" />
<label>Select file to upload: <input type="button" /></label>
CSS
input[type="file"]{visibility:hidden; width:0;}
JavaScript:
var fileInput = document.querySelectorAll('input[type="file"]')[0],
fakeFileInput = document.querySelectorAll('label')[0],
clickEvent = document.createEvent('MouseEvent');
clickEvent.initMouseEvent('click',true,true,document.defaultView,1,0,0,0,0,false,false,false,false,0,null);
fakeFileInput.addEventListener('click', function(event){
fileInput.dispatchEvent(clickEvent);
}, false);
Mira fiddle in action
Así que la respuesta a su pregunta es: No, desafortunadamente no se puede estilo de entrada de archivos BOTÓN!
¿No funciona una clase de CSS para ese botón? –
¿Cómo agregarle clase a ese botón? En realidad, ese botón se genera dinámicamente en el navegador. –