les appareils iOS ajoutent beaucoup de styles gênants sur les entrées de formulaire, en particulier sur les entrées [type = submit]. Vous trouverez ci-dessous le même formulaire de recherche simple sur un navigateur de bureau et sur un iPad.
Bureau:
iPad:
L'entrée [type = text] utilise un encadré d'ombre de la boîte CSS et j'ai même spécifié -webkit-border-radius: none; qui est apparemment annulé. La couleur et la forme de mon bouton d'entrée [type = submit] sont complètement bâties sur l'iPad. Est-ce que quelqu'un sait ce que je peux faire pour résoudre ce problème? Merci d'avance.
La version que j'ai eue est la suivante:
input {
-webkit-appearance: none;
}
Dans certaines versions de navigateur Webkit, vous pouvez également être confronté au border-radius
Toujours en place. Réinitialiser avec les éléments suivants:
input {
-webkit-border-radius:0;
border-radius:0;
}
Cela peut être étendu pour s’appliquer à tous les composants webkit de style form
tels que input
, select
, button
ou textarea
.
En référence à la question initiale, vous n'utiliseriez pas la valeur 'none' pour effacer un élément css basé sur l'unité. Sachez également que cela masque les cases à cocher dans Chrome. Vous pouvez donc utiliser quelque chose comme input[type=text]
Ou input:not([type=checkbox]), input:not([type=radio])
à la place.
Vous pouvez vous débarrasser de certains formulaires Webkits, entrées, etc. avec ceci:
input, textarea, select {
-webkit-appearance: none;
}
Pour le bouton d'envoi, n'utilisez pas:
<input type="submit" class="yourstylehere" value="submit" />
Utilisez plutôt la balise button:
<button type="submit" class="yourstylehere">Submit</button>
Cela a fonctionné pour moi.
regardez normalize.css
Il existe une démo où vous pouvez tester les éléments de formulaire et voir à quoi ils ressemblent dans iOS. Il existe plusieurs propriétés orientées webkit.
C'est ce que j'utilise dans mes projets
* {
-webkit-tap-highlight-color: transparent;
}
a, article, div, h1, h2, h3, h4, h5, h6, img, section, span {
-moz-user-select: none;
-webkit-user-select: none;
}
input, select, textarea {
-webkit-appearance: none;
-webkit-border-radius:0;
border-radius: 0;
}
Vous rencontrez également ce problème dans certains navigateurs si vous disposez des éléments suivants:
<a class="btn btn-primary" href="#" type="button">Link</a>
au lieu de:
<a class="btn btn-primary" href="#" role="button">Link</a>
Cela peut arriver si vous modifiez votre élément d'entrée pour un élément anker et oubliez de changer type
en role
.
J'ai eu ce problème sur les deux Chrome et Safari sur mon iPad.