Popup en CSS, sans Javascript

Dernière mise à jour le 7 novembre 2009 à 13:45 par le hollandais volant
Publié par sebsauvage
Voici comment réaliser une popup d'information en pure CSS, sans Javascript.

L'astuce est d'utiliser :hover de manière à utiliser des CSS différents au passage du curseur.
Parmis les attributs CSS modifiés, on utilise display:none afin de masquer/afficher la popup selon que le curseur se trouve dessus ou non.

Un popup sur un lien



Le contenu de la popup sera juste placé dans une balise <span> à l'intérieur de la balise <a>

Voici le code CSS, à mettre dans le <head> de votre fichier html ou dans un fichier CSS à part :

a.info
{
    position:relative;
    z-index:24; background-color:#ddd;
    color:#000;
    text-decoration:none
}

a.info:hover {z-index:25; background-color:#ff0}

a.info span{display: none}

a.info:hover span
{
    display:block;
    position:absolute;
    top:2em; left:2em; width:10em;
    border:1px solid #0cf;
    background-color:#555; color:#fff;
}


Et voici le code HTML, directement à insérer dans votre page :

    Voici un lien vers <a class="info" href="http://commentcamarche.net">CCM<span>Communauté d'assistance et de conseils high tech</span></a>.


Et voici ce le résultat:

Sans le curseur:


Avec le curseur dessus:

Un popup sans le lien


Si vous voulez juste faire une popup sans lien, vous pouvez mettre href="#" dans votre balise <a>, mais certains navigateurs considèrent que "#" dans un lien est le haut de la page, ce qui cause quelques désagréments lors de la navigation.

Pour contrer ceci, remplacez la balise <a> par une balise <span> (dans le HTML et dans le CSS). Cela fonctionne aussi.
  • Note : avec la balise <span>, vous n'avez pas la petite main du pointeur il suffit de modifier légèrement le CSS :

span.info
{
    position:relative;
    z-index:24; background-color:#ddd;
    color:#000;
    cursor: pointer;
}

Le résultat est le même, mais il n'y a pas de <a> inutile.


(Astuce d'origine: http://psacake.com/web/jl.asp )
Meilleures réponses pour « Popup en CSS, sans Javascript » dans :
Une popup d'information au survol sans Javascript ni CSS Voir Parfois, il peut être utile d'afficher des informations supplémentaire au survol du curseur sur une zone de l'écran, par exemple "Cliquez pour agrandir" sur une image, un descriptif sur une abbréviation ou des détails sur un lien. On trouve...
Changer l'aspect du curseur en CSS VoirLa propriété cursor permet de changer l'aspect du curseur sur un élément d'une page web. Le client affichera automatiquement le curseur de son ordinateur qui correspond au type de curseur que vous aurez choisi. Exemples Liste des attributs...
Différence entre display:none et visibility:hidden VoirLes deux attributs CSS display:none et visibility:hidden permettent tous deux de masquer l'affichage d'un élément en CSS dans le navigateur. Néanmoins, il existe une subtile nuance : visibility: hidden rend le bloc concerné invisible....
Javascript - Librairies d'effets pour vos images VoirAu gré de vos explorations du web, vous avez vu de superbes effets de présentation des images. Et ça vous plairaît bien de pouvoir proposer les mêmes à vos visiteurs. Voici quelques solutions en Javascript couplées à des CSS. Elles sont plus...
Les feuilles de style VoirPropriétés de polices Propriété Valeur Description font-family Police précise (Arial, Times, Verdana) Famille (serif, sans-serif, fantasy, monospace, cursive) Définit un ou plusieurs nom de polices ou de familles de...
Les classes de style (CSS) VoirLes classes et les ID Les classes Il peut s'avérer intéressant d'affecter des styles différents à des mêmes balises. Pour cela les spécifications CSS ont introduit le concept de classe. La définition des classes est aussi simple que celles des...
Collection CommentÇaMarche.net