::file-selector-button
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis avril 2021.
Le pseudo-élément CSS ::file-upload-button représente le bouton d'un élément <input> de type file.
Exemple interactif
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">Choisissez une photo de profil :</label><br />
<input id="avatar" type="file" name="avatar" accept="image/png, image/jpeg" />
Syntaxe
css
::file-selector-button {
/* ... */
}
Exemples
>Exemple simple
HTML
html
<form>
<label for="fileUpload">Uploader un fichier</label>
<input type="file" id="fileUpload" />
</form>
CSS
css
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;
}
Résultat
Notez que ::file-selector-button est un élément entier, et en tant que tel, il correspond aux règles de la feuille de style de l'agent utilisateur. En particulier, les polices et les couleurs ne seront pas nécessairement héritées de l'élément input.
Exemple de repli
HTML
html
<form>
<label for="fileUpload">Uploader un fichier</label>
<input type="file" id="fileUpload" />
</form>
CSS
css
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;
}
Résultat
Spécifications
| Specification |
|---|
| CSS Pseudo-Elements Module Level 4> # file-selector-button-pseudo> |
Compatibilité des navigateurs
Chargement…