Je code une application à l'aide de jQuery, jqTouch et phonegap et rencontre un problème persistant qui se pose lorsqu'un utilisateur envoie un formulaire à l'aide du bouton Exécuter du clavier logiciel.
Bien qu'il soit facile de déplacer le curseur vers l'élément d'entrée de formulaire approprié à l'aide de $('#input_element_id').focus()
, la mise en surbrillance du contour orange revient toujours au dernier élément d'entrée du formulaire. (La surbrillance n'apparaît pas lorsque le formulaire est soumis à l'aide du bouton de soumission de formulaire.)
Ce qu'il me faut, c'est trouver un moyen de désactiver complètement le surlignage orange ou de le faire passer au même élément d'entrée que le curseur.
Jusqu'ici, j'ai essayé d'ajouter ce qui suit à mon CSS:
.class_id:focus {
outline: none;
}
Cela fonctionne dans Chrome mais pas sur l'émulateur ni sur mon téléphone. J'ai également essayé de modifier jqTouch theme.css
Comme suit:
ul li input[type="text"] {
-webkit-tap-highlight-color: rgba(0, 0, 0, 0); and
-webkit-focus-ring-color: rgba(0, 0, 0, 0);
}
Sans effet. J'ai également essayé chacun des ajouts suivants au fichier AndroidManifest.xml
:
Android:imeOptions="actionNone"
Android:imeOptions="actionSend|flagNoEnterAction"
Android:imeOptions="actionGo|flagNoEnterAction"
Aucun d'entre eux n'a aucun effet.
Mise à jour: j'ai fait un peu plus de dépannage avec cela et à ce jour, j'ai trouvé:
La propriété de contour ne fonctionne que sur Chrome, pas sur le navigateur Android.
La propriété -webkit-tap-highlight-color
Fonctionne en fait sur le navigateur Android, mais pas sur Chrome. Elle désactive la mise en surbrillance sur le focus et sur l'écran tactile.
La propriété -webkit-focus-ring-color
Ne semble pas fonctionner sur aucun navigateur.
Essayer:
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
-webkit-tap-highlight-color: transparent; // i.e. Nexus5/Chrome and Kindle Fire HD 7''
* {
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
dans votre fichier css. Cela a fonctionné pour moi!
Travailler sur Android par défaut, Android Chrome et iOS Safari 100%
* {
-webkit-tap-highlight-color: rgba(255, 255, 255, 0) !important;
-webkit-focus-ring-color: rgba(255, 255, 255, 0) !important;
outline: none !important;
}
Supprimez le cadre orange sur le focus d'entrée pour les androïdes
textarea:focus, input:focus{
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
-webkit-user-modify: read-write-plaintext-only;
}
tap-highlight-color pour la plupart des versions
ser-modify pour 4.0.4
Essayez de ligne de mise au point
body, textarea:focus, input:focus{
outline: none;
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
}
Sachez que l’utilisation de ce CSS -webkit-user-modify: read-write-plaintext-only;
_ SUPPRIMERA cet horrible "bug" - MAIS cela pourrait tuer la capacité de vos appareils de fournir un clavier spécifique. Pour nous exécutant Android 4.0.3 sur un Samsung Tab 2, nous ne pouvions plus obtenir le clavier numérique. Même en utilisant type = 'numéro' &/ou type = 'tel'. Très frustrant! Par ailleurs, le réglage de la couleur de surlignage du tapotement n'a pas permis de résoudre ce problème pour cet appareil et la configuration du système d'exploitation. Nous utilisons Safari pour Android.
Pour vous assurer que la propriété tap-highlight-color
Remplaçant fonctionne pour vous, tenez compte des points suivants:
Ne fonctionne pas:
- webkit-user-modify: lecture-écriture-texte brut seulement;
// Parfois, le clavier natif se déclenche lorsque vous cliquez sur l'élément.class: active, .class: focus {-webkit-tap-highlight-color: rgba (0,0,0,0); }
// Il ne fonctionne pas s'il est défini pour les étatsTravail:
.class { -webkit-tap-highlight-color: rgba(0,0,0,0); }
Cette affaire fonctionne pour Android de v2.3 à v4.x même dans une application PhongeGap. Je l’ai testé sur Galaxy Y avec Android 2.3.3, sur Nexus 4 avec Android 4.2.2 et sur Galaxy Note 2 avec Android 4.1.2. ne le définissez pas pour des états uniquement pour l'élément lui-même.
Utilisez le code ci-dessous dans le fichier CSS
* {
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
:focus {
outline: 0;
border:none;
color: rgba(0, 0, 0, 0);
}
C'est un travail pour moi. J'espère que ça marche pour vous.
Je voulais juste partager mon expérience. Je n'ai pas vraiment réussi à faire fonctionner cela, et je voulais éviter les ralentis css- *. Ma solution consistait à télécharger Reset CSS v2.0 du bon vieil Eric Meyer ( http://meyerweb.com/eric/tools/css/reset/ ) et à l'ajouter à mon projet phonegap. J'ai ensuite ajouté:
-webkit-tap-highlight-color: rgba(0, 0, 0, 0); /** Disable orange highlight */
D'après mon expérience, c'est une approche plus rapide du *, mais c'est aussi une approche des bugs moins étranges. La combinaison de tap-highlight, -webkit-user-modify: lecture-écriture-texte-clair uniquement et désactivation de, par exemple, la mise en surbrillance du texte nous a fourni beaucoup de têtes. L’un des pires problèmes est que l’intervention du clavier s’arrête soudainement et ralentit la visualisation du clavier.
Réinitialisation complète de CSS avec la surbrillance orange désactivée:
/**
* Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/)
* http://cssreset.com
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, Ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0); /** Disable orange highlight */
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
Cela ne fonctionnait pas pour moi sur les liens Image Map Area. La seule solution efficace consistait à utiliser javascript en capturant l'événement ontouchend et à empêcher le comportement du navigateur par défaut en renvoyant la valeur false sur le gestionnaire.
avec jQuery:
$("map area").on("touchend", function() {
return false;
});
J'ai essayé celui-ci et a bien fonctionné: -
HTML: -
<a class="html5logo" href="javascript:void(0);" ontouchstart="return true;"></a>
css
.html5logo {
display: block;
width: 128px;
height: 128px;
background: url(/img/html5-badge-128.png) no-repeat;
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-tap-highlight-color: transparent; /* For some Androids */
}
.html5logo:active {
-webkit-transform: scale3d(0.9, 0.9, 1);
}
Cela fonctionnera non seulement pour les robinets, mais également en vol stationnaire:
button, button:hover, li:hover, a:hover , li , a , *:hover, * {
-webkit-tap-highlight-color: rgba(0, 0, 0, 0) !important;
}
Ce travail pour moi dans Ionic, vient de mettre dans un fichier CSS pour écraser
:focus {
outline-width: 0px;
}
Si la conception n'utilise pas de contours, cela devrait faire l'affaire:
*, *::active, *::focus {
-webkit-tap-highlight-color: rgba(0, 0, 0, 0)!important;
-webkit-focus-ring-color: rgba(0, 0, 0, 0)!important;
outline: none!important;
}
<EditText
Android:id="@+id/edittext"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:background="@Android:drawable/editbox_background_normal"
/>