Astuce HTML/CSS : Utilisation des ancres avec un en-tête de page fixée
Le HTML, associé à des styles CSS, est un langage qui a beaucoup évolué, très rapidement. De ce fait, mélanger anciennes et nouvelles technologies ne font pas toujours bon ménage. Ici, l'ancienne technologie est la gestion des ancres, afin d'aider le visiteur à naviguer intra-page, alors que la nouvelle est l'utilisation d'un en-tête fixée, c'est à dire, toujours visible en haut de notre page et de notre navigateur.
Le problème est qu'avec un bloc fixé en haut de page, le contenu ne devient visible qu'après la hauteur du bloc. Hors les ancres déplacent le positionnement de la page, afin que l'ancre ciblée se trouve exactement en haut de la page. Du coup, avec notre en-tête, on ne voit plus le haut de notre bloc ancré.
L'astuce est simple, mais il fallait y penser. Le concept est de créer un autre bloc, placé avant notre bloc de contenu. Et de le définir sans hauteur. Voici le style à lui appliquer.
.anchor {height:0; font-size:0;}
Dans le doute, on va le rendre invisible, mais présent.
.anchor {height:0; font-size:0; visibility:hidden;}
Enfin, et c'est ici tout l'intérêt, il suffit de déplacer ce bloc invisible de la hauteur de notre en-tête vers le haut. Si par exemple, elle est de 80 pixels, voici le style complet.
.anchor {height:0; font-size:0; visibility:hidden; display:block; position:relative; top:-80px;}
Tout simplement.