Les info-bulles pour les navigateurs mobiles
Je suis actuellement l'ensemble de la title
attribut de code HTML si je veux fournir plus d'informations:
<p>An <span class="more_info" title="also called an underscore">underline</span> character is used here</p>
Ensuite dans le CSS:
.more_info {
border-bottom: 1px dotted;
}
Fonctionne très belle, indicateur visuel pour déplacer la souris au-dessus et puis une petite fenêtre pop-up contenant plus d'informations. Mais sur les navigateurs mobiles, je n'en ai pas l'info-bulle. title
attributs ne semblent pas avoir un effet. Quelle est la bonne manière de donner plus d'informations sur un morceau de texte dans un navigateur mobile? Même que ci-dessus mais l'utilisation de Javascript pour écouter un clic, puis afficher une info-bulle à la recherche de dialogue? Est-il un mécanisme natif?
- Vous attendiez-vous à être en mesure de pointer votre doigt?
- bonne question :). Bien sûr, je m'attendais à être en mesure de mettre mon doigt sur le
title
attribué élément et afficher une info-bulle. Puisque les téléphones ne peuvent pas encore en mesure de détecter le vol stationnaire, je m'attendais à un besoin d'appuyer sur l'écran aussi. J'ai également prévu le navigateur mobile de traiter intelligemment à cette question puisque je n'ai mis letitle
attribut correctement. Peut-être une sorte d'indicateur, il y avait une info-bulle et une façon de le voir... ou peut-être que ça vient automatiquement jusqu'à ce que vous cliquez ailleurs... je pense que je ne m'attendais pas du navigateur à ignorer mon HTML. - malheureusement, ça ne semble pas être la façon dont les navigateurs mobiles de travail :(. serait bien quand même
- Pour ce que ça vaut, CSS plane pouvez vous inscrire en un clic/cliquez sur, tant qu'ils ne sont pas attachés à un lien ou un formulaire... au moins ils le font avec le Opera Mobile emulator un émulateur Android. Ne peux pas commenter sur l'iPhone ou de dispositifs réels. Ainsi, un
span:hover:after { content: attr(title) }
permettrait de révéler plus d'informations. - vous voulez dire que le code ci-dessus fonctionne avec un clic à l'Opéra et le mobile Android émulé navigateurs? J'avais essayé sur un iPhone et il n'a pas. Le
span:hover:after
css que vous avez mentionné, qui est censé faire ce travail sur un iPhone? - Je n'ai pas d'iPhone, ni un émulateur pour l'un, donc je n'ai aucune idée. Sur les émulateurs je l'ai mentionné, j'ai des éléments qui sont cachés par défaut et a révélé sur :hover, et ceux absolument faire de l'affichage lorsque l'élément est cliqué.
span:hover:after { content: attr(title) }
ne fonctionne pas sur un iPhone ou un émulateur. Si le texte peut être sélectionné, le système d'exploitation va tenter de le sélectionner...donc rien de plus qu'un clic va à l'encontre de ce que vous essayez de faire.- Pour résoudre le problème de sélection vous pouvez ajouter
span[title] > * { user-select: none}
span[title]:hover > * { user-select: auto }
.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faux titre d'info-bulle comportement avec Javascript. Lorsque vous cliquez sur/onglet sur un élément avec un
title
attribut, un élément enfant avec le titre du texte sera ajouté. Cliquez sur nouveau et il est supprimé.Javascript (avec jQuery):
CSS:
Démo: http://jsfiddle.net/xaAN3/
more_info
de la classe et de l'utilisation d'un attribut sélecteur à la place! 🙂 developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectorsSelon la quantité d'informations que vous souhaitez donner à l'utilisateur, un modal de la boîte de dialogue pourrait être une solution élégante.
Plus précisément, vous pouvez essayer les qTip plugin jQuery, qui a un modal mode tiré sur
$.click()
:Légèrement plus élaboré version de flavaflo réponse:
HTML:
CSS:
JavaScript /jQuery:
Démo ici https://jsfiddle.net/bgxC/yvs1awzk/
Comme @cimmanon mentionné:
span[title]:hover:after { content: attr(title) }
vous donne des rudiments d'info-bulle sur les appareils à écran tactile. Malheureusement, cela a des problèmes où le comportement de l'interface utilisateur par défaut sur les appareils à écran tactile est de sélectionner le texte lors de la non-link/uicontrol est pressé.Pour résoudre le problème de sélection vous pouvez ajouter
span[title] > * { user-select: none} span[title]:hover > * { user-select: auto }
Une solution complète peut recourir à d'autres techniques:
position: absolute
background
,border
,box-shadow
etc pour la faire ressembler à une info-bulle.touched
à corps (via js) lorsque l'utilisateur utilise la touche de l'événement.Ensuite, vous pouvez faire
body.touched [title]:hover ...
sans affecter les utilisateurs d'ordinateurs de bureauJS:
CSS:
HTML:
L'attribut title n'est pas pris en charge dans tous les navigateurs mobiles **d'une manière qui permettrait d'afficher l'info-bulle le même que sur le bureau de la souris les utilisateurs** *(l'attribut lui-même est bien sûr pris en charge dans le balisage)*.
C'est seulement essentiellement pour les utilisateurs de pc de bureau avec une souris, un clavier seuls les utilisateurs ne peuvent pas l'utiliser, ou de lecteurs d'écran.
Vous pouvez obtenir à peu près semblable, avec javascript comme vous l'avez dit.
title
attribut d'un élément.Étant donné que beaucoup de gens de nos jours (2015) utiliser les navigateurs mobiles, et le titre n'a pas encore trouvé une forme d'exposition dans les navigateurs mobiles, peut-être il est temps de rendre caduque la confiance sur le titre pour les informations significatives.
Il ne doit jamais être utilisé pour l'information critique, mais il est en train de devenir douteuse pour de l'information utile, parce que si cette information est utile et ne peut pas être montré que la moitié des utilisateurs, puis une autre façon de le montrer à presque tous les utilisateurs doit être trouvé.
Pour les pages statiques, peut-être certains de texte visible à proximité de contrôle, de même que les petits caractères. Pour le serveur de pages générées, browser sniffing pourrait fournir uniquement pour les navigateurs mobiles. Sur le côté client, en javascript peuvent être utilisés pour intercepter les événements de focus, via la formation de bulles, afin de montrer le texte suivant pour l'instant à la mise élément. Afin de minimiser l'espace de l'écran mais ne serait pas nécessairement être d'une grande utilité, car, dans beaucoup de cas, d'amener le focus à un contrôle ne peut être fait d'une manière qui active immédiatement son action, en contournant la possibilité d'en savoir plus avant de l'utiliser!
Plus de tout cela, il apparaît que les difficultés de montrer l'attribut title sur les appareils mobiles, peuvent le conduire à sa perte, en raison principalement besoin d'une alternative qui est plus universel. C'est dommage, parce que les mobiles pourrait utiliser un moyen d'afficher ces infos supplémentaires sur demande, sans prendre l'espace d'écran limitée.
Il semble étrange que le w3c et d'un navigateur mobile décideurs n'ont rien à propos de ce problème il y a longtemps. Ils auraient pu au moins affiche le titre du texte sur le menu qui s'affiche lorsqu'une pression longue sur un contrôle est effectué.
Personnellement, je souhaite qu'elle a été placée au sommet d'un clic-droit/long-appuyez sur menu, puisqu'il n'aura pas de délai d'attente, et sera accessible sur tous les navigateurs.
L'autre alternative est de créer des notes de bas de page, de sorte qu'un [n] type exposant est mis en regard de l'élément de texte/besoin de plus d'info, un lien vers un texte explicatif dans la liste au bas de la page. Chacun de ceux-ci peuvent avoir un semblable [n] type de lien vers le texte d'origine/élément. De cette façon, il maintient l'affichage épuré, mais permet de faciliter l'échange bidirectionnel d'une manière simple. Parfois, les vieux médias imprimés façons, avec un peu de lien hypertexte de l'aide, sont les meilleures.
L'attribut title a été détourné par certains navigateurs pour afficher un texte d'aide pour le modèle de l'attribut, en ce que son texte s'affiche si le modèle ne correspond pas au texte dans l'élément d'entrée. Généralement, c'est à donner des exemples de bon format.
Grâce à @flavaflo pour leur réponse. Cela fonctionne dans la plupart des cas, mais si il n'y a plus d'un titre pour la recherche dans le même paragraphe, et l'une s'ouvre sur le lien à l'autre, le non ouverts lien montre à travers la première. Ce problème peut être résolu par l'évolution dynamique de la z-index du titre qui a "sauté":
Aussi, vous pouvez faire les deux en vol stationnaire sur l'affichage et cliquez sur afficher plusieurs lignes en ajoutant
(saut de ligne) à l'title=" attribut, et ensuite de les convertir à<br />
pour la page html, cliquez sur affichage: