28172 sujets
CSS et mise en forme, CSS3
Euh... sans JS je suppose que tu veux parler d'un élément en display:none qui est transformé en display:block sur le :hover de l'élément conteneur ?
Auquel cas il ne s'agit pas de l'attribut title...
Ou bien d'attributs propriétaires disponibles uniquement pour quelques navigateurs ?
Modifié par Heyoan (24 Apr 2009 - 11:27)
Auquel cas il ne s'agit pas de l'attribut title...
Ou bien d'attributs propriétaires disponibles uniquement pour quelques navigateurs ?
Modifié par Heyoan (24 Apr 2009 - 11:27)
Oui des hover, des block avec des <span>, pas tout compris en fait mais apparemment ça fonctionne que avec des liens mais je ne suis pas sûr, ou si on peut adapter pour des <td>
Et oui on utilise plus title dans ce que j'ai vu mais des <span>text bulle </span>
Mais je n'ai pas encore eu le temps de bien regarder.
Modifié par Biouzor (24 Apr 2009 - 11:31)
Et oui on utilise plus title dans ce que j'ai vu mais des <span>text bulle </span>
Mais je n'ai pas encore eu le temps de bien regarder.
Modifié par Biouzor (24 Apr 2009 - 11:31)
Bonjour,
:hover fonctionnera sur toutes les balises HTML, donc les TD aussi.
Mais, IE6 ne sais pas intrpréter hover pour les autres éléments que a.
Donc une solution à base de :hover et de span cachée (qui devra être développée en faisant bien attention à son accessibilité) fonctionnera, saus pour IE6.
:hover fonctionnera sur toutes les balises HTML, donc les TD aussi.
Mais, IE6 ne sais pas intrpréter hover pour les autres éléments que a.
Donc une solution à base de :hover et de span cachée (qui devra être développée en faisant bien attention à son accessibilité) fonctionnera, saus pour IE6.
Bonjour, j'ai partiellement résolu mon problème (ça marche nikel sous IE mais pas sur Firefox :s) :
Mon code CSS :
Mon code HTML :
Sous IE l'infobulle apparait correctement, sous firefox le seul truk qui apparait c'est le changement de curseur (cursor: help;) mais pas de bulle .
Mon code CSS :
td.infoTacheSemaine {
position: relative;
color: black;
text-decoration: none;
border-bottom: 1px gray dotted; /* on souligne le texte */
}
td.infoTacheSemaine span {
display: none; /* on masque l'infobulle */
}
td.infoTacheSemaine:hover {
background: none; /* correction d'un bug IE */
z-index: 500; /* on définit une valeur pour l'ordre d'affichage */
cursor: help; /* on change le curseur par défaut en curseur d'aide */
}
td.infoTacheSemaine:hover span {
display: inline; /* on affiche l'infobulle */
position: absolute;
white-space: nowrap; /* on change la valeur de la propriété white-space pour qu'il n'y ait pas de retour à la ligne non-désiré */
top: 30px; /* on positionne notre infobulle */
left: 20px;
background: white;
color: teal;
padding: 3px;
border: 1px solid teal;
border-left: 4px solid teal;
}
Mon code HTML :
<td class="infoTacheSemaine" >Mon texte dans ma case<span>Mon Texte dans ma bulle</span></td>
Sous IE l'infobulle apparait correctement, sous firefox le seul truk qui apparait c'est le changement de curseur (cursor: help;) mais pas de bulle .
Et si je change tout et que je décide finalement de faire ça en javascript, je risque d'avoir le même problème au final ou pas ?
(ayant plus de 300 lignes de CSS dans toute ma page CSS et plus de 600 lignes dans la page php en question je vais pas tout vous mettre)
Modifié par Biouzor (27 Apr 2009 - 15:08)
(ayant plus de 300 lignes de CSS dans toute ma page CSS et plus de 600 lignes dans la page php en question je vais pas tout vous mettre)
Modifié par Biouzor (27 Apr 2009 - 15:08)
J'ai finalement décidé de faire ça avec du javascript mais cette fois-ci, ça marche parfaitement sur firefox mais ça bug un peu sur IE, ça affiche ce qui doit être dans ma bulle sur ma page à l'endroit de mon <div></div> ça ne crée pas la bulle et ne suit pas le curseur (contrairement à Firefox ou cette fois ça marche impec')
Code javascript :
Code CSS (simple) :
Code HTML :
De la bulle :
Dans mes <td> :
Quelqu'un aurait une idée du pourquoi cette fois ça marche pas comme il faut sur IE ? ^^
Modifié par Biouzor (28 Apr 2009 - 09:21)
Code javascript :
function GetId(id)
{
return document.getElementById(id);
}
var i=false; // La variable i nous dit si la bulle est visible ou non
function move(e)
{
if(i)
{ // Si la bulle est visible, on calcul en temps reel sa position ideale
if (navigator.appName!="Microsoft Internet Explorer")
{ // Si on est pas sous IE*/
GetId("curseur").style.left=e.pageX + 5+"px";
GetId("curseur").style.top=e.pageY + 10+"px";
}
else
{
if(document.documentElement.clientWidth>0)
{
GetId("curseur").style.left=20+event.x+document.documentElement.scrollLeft+"px";
GetId("curseur").style.top=10+event.y+document.documentElement.scrollTop+"px";
}
else
{
GetId("curseur").style.left=20+event.x+document.body.scrollLeft+"px";
GetId("curseur").style.top=10+event.y+document.body.scrollTop+"px";
}
}
}
}
function montre(text)
{
if(i==false)
{
GetId("curseur").style.visibility="visible"; // Si il est cacher (la verif n'est qu'une securité) on le rend visible.
GetId("curseur").innerHTML = text; // on copie notre texte dans l'élément html
i=true;
}
}
function cache()
{
if(i==true)
{
GetId("curseur").style.visibility="hidden"; // Si la bulle est visible on la cache
i=false;
}
}
document.onmousemove=move; // dès que la souris bouge, on appelle la fonction move pour mettre à jour la position de la bulle
Code CSS (simple) :
.infobulle
{
position: absolute;
visibility : hidden;
border: 1px solid Black;
padding: 10px;
font-family: Verdana, Arial;
font-size: 10px;
background-color: #FFFFCC;
}
Code HTML :
De la bulle :
<div id="curseur" class="infobulle"></div>
Dans mes <td> :
<td onmouseover="montre('Texte de ma bulle');" onmouseout="cache();">Texte de ma case</td>
Quelqu'un aurait une idée du pourquoi cette fois ça marche pas comme il faut sur IE ? ^^
Modifié par Biouzor (28 Apr 2009 - 09:21)
J'ai finalement résolu mon problème, j'avais encore mon infobulle qui apparaissait en arrière plan par rapport au tableau sur IE mais c'est arrangé, à cause de certaines lignes de code CSS gênant. Et j'ai opté pour le choix du javascript, au moins on a le même résultat sur tous les navigateurs et on peut bouger la bulle en fonction du curseur .