2008-11-06 3 views

Répondre

31
  • Masquer le contrôle effectif
  • Fait un DIV avec les commandes et le style que vous voulez sur le dessus de celui-ci

Le bouton n'est pas un contrôle standard HTML.

Voir: http://www.quirksmode.org/dom/inputfile.html

+0

donc il n'y a aucun moyen d'y parvenir en utilisant le contrôle natif lui-même? – Larsenal

+0

J'ai mis à jour la réponse. Voir: http://www.quirksmode.org/dom/inputfile.html –

+1

Il n'y a absolument pas besoin d'utiliser l'opacité - vous pouvez simplement déléguer le clic sur un affichage: aucun élément - beaucoup plus simple et vous n'avez pas à prendre la taille d'entrée (variable) en compte. –

22

ce qui ne va pas avec

<input type="file" size="50" .... /> 

? fera-t-mêmes, sauf safari sur mac je suppose (sur mac, tous les contrôles de téléchargement est différent, sur tous les navigateurs)

+1

input-width ne fait rien. Vous pensez peut-être à la taille d'entrée, qui change la largeur, mais pas aux unités que vous pouvez normaliser d'un navigateur à l'autre. – bobince

+0

oui, vous avez raison, je n'étais pas attentif :) –

+1

Cela fonctionne ... il gère firefox..pendant la largeur CSS propery gère Chrome, IE, et Safari –

7

En plus du tutoriel quirksmode, voici une autre bonne ressource: http://www.shauninman.com/archive/2007/09/10/styling_file_inputs_with_css_and_the_dom

Si vous êtes masquer le contrôle réel, rappelez-vous qu'il est très important de mettre l'opacité du contrôle à zéro, et ne pas utiliser réellement visibility: hidden. Faire cela cachera réellement l'élément, en désactivant l'action de clic. En outre, si vous masquez le contrôle avec un bouton graphique, sachez que dans certains navigateurs (Firefox et IE, je crois), vous ne pourrez pas changer le type de curseur en main quand il est au-dessus de la partie d'entrée de texte du contrôle de fichier (il sera toujours par défaut à l'entrée ou le pointeur de non-lien régulier). Et oui, j'ai essayé d'utiliser cursor: pointer (et cursor: hand). Personnellement, j'ai eu du mal avec les boîtes de téléchargement personnalisées, et il n'y a pas de solution miracle pour obtenir une apparence ou une personnalisation parfaite. (en particulier concernant le comportement du curseur, car je considère qu'un disjoncteur d'interface utilisateur). À la fin de la journée, je pense qu'il est plus facile d'accepter que les différents navigateurs rendent le contrôle différemment, et c'est comme ça.

Questions connexes