Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.
::file-selector-button
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since abril de 2021.
ElpseudoelementoCSS::file-selector-button representa el botón de un<input> con el atributotype="file".
In this article
Pruébalo
input { margin-top: 1rem;}input::file-selector-button { font-weight: bold; color: dodgerblue; padding: 0.5em; border: thin solid grey; border-radius: 3px;}<label for="avatar">Choose a profile picture:</label><br /><input type="file" name="avatar" accept="image/png, image/jpeg" />Nota:Las versiones anteriores de navegadores compatibles con WebKit/Blink como Chrome, Opera y Safari (indicados por el prefijo-webkit) admitían un pseudoelemento no estándar::-webkit-file-upload-button.
Legacy Edge y las versiones posteriores de IE admitían un pseudoelemento no estándar::-ms-browse.
Ambos pseudo-elementos tienen el mismo propósito que::file-selector-button.
Sintaxis
selector::file-selector-buttonEjemplos
>Ejemplo básico
HTML
<form> <label for="fileUpload">Subir archivo</label> <input type="file" /></form>CSS
form { display: flex; gap: 1em; align-items: center;}input[type="file"]::file-selector-button { border: 2px solid #6c5ce7; padding: 0.2em 0.4em; border-radius: 0.2em; background-color: #a29bfe; transition: 1s;}input[type="file"]::file-selector-button:hover { background-color: #81ecec; border: 2px solid #00cec9;}Resultado
Ejemplo con respaldo para navegadores antiguos que admiten los prefijos-webkit y-ms. Tenga en cuenta que, como selector, deberá escribir el bloque de código completo dos veces, ya que un selector no reconocido invalida toda la lista.
Tenga en cuenta que::file-selector-button es un elemento completo y, como tal, coincide con las reglas de la hoja de estilo delUser-Agent. En particular, las fuentes y los colores no heredarán necesariamente del elementoinput.
Ejemeplo con respaldo
HTML
<form> <label for="fileUpload">Subir archivo</label> <input type="file" /></form>CSS
form { display: flex; gap: 1em; align-items: center;}input[type="file"]::-ms-browse { border: 2px solid #6c5ce7; padding: 0.2em 0.4em; border-radius: 0.2em; background-color: #a29bfe;}input[type="file"]::-webkit-file-upload-button { border: 2px solid #6c5ce7; padding: 0.2em 0.4em; border-radius: 0.2em; background-color: #a29bfe; transition: 1s;}input[type="file"]::file-selector-button { border: 2px solid #6c5ce7; padding: 0.2em 0.4em; border-radius: 0.2em; background-color: #a29bfe; transition: 1s;}input[type="file"]::-ms-browse:hover { background-color: #81ecec; border: 2px solid #00cec9;}input[type="file"]::-webkit-file-upload-button:hover { background-color: #81ecec; border: 2px solid #00cec9;}input[type="file"]::file-selector-button:hover { background-color: #81ecec; border: 2px solid #00cec9;}Resultado
Especificaciones
| Specification |
|---|
| CSS Pseudo-Elements Module Level 4> # file-selector-button-pseudo> |