J'ai un div positionné dont le contenu peut être trop long, ce qui fait apparaître des barres de défilement ( overflow:auto
ensemble). Il fonctionne comme une boîte de dialogue dans une application ajax. Je veux fixer un bouton de fermeture dans le coin supérieur droit pour que, lorsque l'utilisateur fait défiler la division, elle ne disparaisse pas.
J'ai essayé avec position:fixed; right:0; top:0
mais il a placé le bouton en haut à droite de la page et non dans le div (dans firefox).
Est-il possible de placer ce bouton en utilisant uniquement les CSS sans avoir à manipuler les offsetWidth/Height en js à chaque événement de défilement ?
ps : la hauteur et la largeur du div n'est pas une valeur fixe, elle dépend de la taille du contenu et de la taille de la fenêtre du navigateur. L'utilisateur peut également la redimensionner s'il le souhaite.
1 votes
Il peut être intéressant d'envisager l'utilisation d'un div avec une image d'arrière-plan à position fixe pour le bouton.
1 votes
@NickM semble être une bonne idée mais comment cliquer sur le bouton alors ?
0 votes
@ithil Tant que la hauteur et la largeur de la division sont définies pour correspondre à celles de l'image d'arrière-plan, elle devrait être cliquable. En ce qui concerne les manipulation le clic, cela dépend si vous utilisez du HTML simple ou du JS. Si c'est juste du HTML, vous pouvez envelopper le div dans un fichier de type
a
avec une balisehref
(ou même simplement utiliser una
au lieu d'une balisediv
et le définir commedisplay: inline-block
). Si c'est JS, vous pouvez écouter pour un clic sur lediv
. Ai-je bien compris votre question ?0 votes
@NickM oui je crois que vous l'avez fait merci, mais la hauteur et la largeur seront "réglées pour correspondre" en utilisant JS aussi je suppose ? comme dans la question OP "la hauteur et la largeur de la div n'est pas une valeur fixe", c'est pourquoi je me demandais
0 votes
@ithil Je vois. J'ai manqué cette partie. Dans ce cas, je pense que vous avez raison de dire que du JS devrait gérer le dimensionnement de la div.