52 votes

Pourquoi est-ce que IE faire mot de passe des boîtes plus petites que les zones de texte?

Voir le formulaire ci-dessous. C'est juste une zone de texte en haut d'un mot de passe de la boîte. Si vous regardez attentivement dans Internet Explorer 7 (et 8, et probablement d'autres) la zone de texte est de 10 pixels plus large que la zone mot de passe.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>IE Text vs. Password test</title>
</head>
<body>                 

<form action="test"> 
  <p>
    <input type="text"><br>  
    <input type="password">      
  </p>
</form>          

</body>
</html>

Est-il un moyen de "réparer" que dans le monde, soit par le biais de CSS ou en ajoutant quelque chose à l'HTML?

96voto

Konstantin Tarkus Points 16862

Car de police différent est utilisé dans tous les types de champs.

La solution est simplement de préciser que toutes les entrées d'utiliser la même police.

<style type="text/css">
  input {
      font-family: sans-serif;                
  }
</style>

3voto

Darin Dimitrov Points 528142

Vous pourriez ajouter une largeur fixe pour toutes les entrées sur la page en cours:

<style type="text/css">
input {
    width: 10em;    
}
</style>

1voto

Rich Points 16818

Si vous incluez la bibliothèque jQuery dans votre page(s), vous pouvez utiliser le code suivant:

"Lorsque le document est entièrement chargé, prendre le premier élément input de type='text', et de l'appliquer de la hauteur et la largeur de tous les éléments input de type='mot de passe'".

J'ai testé cela sur IE7 seulement, et cela a fonctionné comme un charme.

<script type="text/javascript" src="jquery-1.3.2.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){

$("input[type='password']").height($("input[type='text']").height());
$("input[type='password']").width($("input[type='text']").width());

});
</script>

C'est une réponse générale (en prenant le premier élément qui correspond input[type='text']). Vous pouvez obtenir une référence à un élément particulier que vous souhaitez faire correspondre, et ensuite obtenir une référence à une ou plusieurs boîtes de passe avec un autre sélecteur jQuery. Jetez un oeil à la documentation pour obtenir des éléments d'identification ou à un groupe d'éléments d'une même classe css ou xpath expression de type:

http://docs.jquery.com/Selectors

0voto

Macha Points 4488

Réglage de la largeur sur les zones de texte permettra de résoudre, mais je suppose que c'est pas ce que vous voulez.

Essayez de définir le min-width sur input[type=text], input[type=password] pour quelque chose de plus grand que la valeur par défaut pour les zones de texte. Vous aurez probablement besoin http://deanedwards.me.uk s 'IE8 script pour faire ces sélecteurs de travail.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X