Bonjour
Je suis perdu dans le code suivant:
mapPoint: comme son nom l'indique, il s'agit d'un point sur une carte.
Sa position est définie dans l'attribut style qui est calculé par un script JS
Pour qu'il soit centré sur le point ainsi défini, l'attribut transform: translate(-50%, -50%); le décale en largeur et en hauteur. Cette partie du code fonctionne, j'ai bien une image correctement positionnée à l'endroit désiré.
label: il s'agit d'un texte qui donne le nom du lieu géographique.
Ce que je voudrais faire: définir les classes N, S, E, W de telle façon que le label se place:
class="N" au dessus du point, centré sur le point
class="S" au dessous du point, centré sur le point
class="W" à gauche du point
class="E" à droite du point
Pour cela, j'essaie de définir ces classes en jouant sur
- le positionnement par des "top:", "bottom:", "left:" right": X %
- un décalage exprimé par "transform: translate(Y%, Z%)
SI j'ai bien compris, X% est relatif à la largeur ou à la hauteur de <div class="mapPoint">
Y% est un pourcentage de la largeur du <label>, Z% est un pourcentage de la hauteur de <label>
Il doit y avoir quelque chose qui cloche, je n'arrive pas à trouver les bonnes valeurs.
Par exemple dans le cas ci-dessus j'ai mis:
Pourriez vous m'aider à y voir clair?
Merci de votre aide
Modifié par PapyJP (30 May 2016 - 15:29)
Je suis perdu dans le code suivant:
<div class="mapPoint" style="top:x%;left:y%;">
<img src="circle.png" alt="" />
<label class="W">Alexandrie</label>
</div>
.mapPoint {
position:absolute;
z-index:100;
transform: translate(-50%, -50%);
padding:2px;
}
.mapPoint label{
position:absolute;
}
.mapPoint .E{???}
.mapPoint .W{????}
.mapPoint .N{????}
.mapPoint .S{????}
mapPoint: comme son nom l'indique, il s'agit d'un point sur une carte.
Sa position est définie dans l'attribut style qui est calculé par un script JS
Pour qu'il soit centré sur le point ainsi défini, l'attribut transform: translate(-50%, -50%); le décale en largeur et en hauteur. Cette partie du code fonctionne, j'ai bien une image correctement positionnée à l'endroit désiré.
label: il s'agit d'un texte qui donne le nom du lieu géographique.
Ce que je voudrais faire: définir les classes N, S, E, W de telle façon que le label se place:
class="N" au dessus du point, centré sur le point
class="S" au dessous du point, centré sur le point
class="W" à gauche du point
class="E" à droite du point
Pour cela, j'essaie de définir ces classes en jouant sur
- le positionnement par des "top:", "bottom:", "left:" right": X %
- un décalage exprimé par "transform: translate(Y%, Z%)
SI j'ai bien compris, X% est relatif à la largeur ou à la hauteur de <div class="mapPoint">
Y% est un pourcentage de la largeur du <label>, Z% est un pourcentage de la hauteur de <label>
Il doit y avoir quelque chose qui cloche, je n'arrive pas à trouver les bonnes valeurs.
Par exemple dans le cas ci-dessus j'ai mis:
.mapPoint .W{right:-100%;}
en pensant que ça mettrait la droite de <label> sur la gauche de <div>. Ce n'est manifestement pas le cas: le -100% s'applique à la largeur de <label>.Pourriez vous m'aider à y voir clair?
Merci de votre aide
Modifié par PapyJP (30 May 2016 - 15:29)