Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mes listes déroulantes se décalent avec le zoom

Sujet résolu
    20 juin 2017 à 5:18:30

    Bonjour,

    J'ai un tableau :

    <table>
    <caption>La porte automatique</caption>
    <tr><!-- 1ère ligne composée de 2 cellules th et td-->
        <th><!-- 1ère cellule : une image et un texte de présentation-->
            <img src="images/porte_automatique.jpg" style="width:200px; margin-left:5px;"/>
            <ol>
                <li>Mise en marche du système.</li>
                <li>Détection d'une personne.</li>
            </ol>
        </th>			
         <td><!-- 2ème cellule : une image et 7 menus déroulants placés sur un endroit bien précis sur l'image-->
             <p><img src="images/porte_automatique.png" style="width:500px; height:700px"/></p>
    		<select name="rep1" id="rep1" style="position: absolute; top: 100px; left: 0px;">
                <option <?php if($rep1 == $_SESSION['c11']) {echo " selected";} ?> id="$c11"><?php echo "{$_SESSION['c18']}"?></option>
    			<option <?php if($rep1 == $_SESSION['c12']) {echo " selected";} ?> id="$c12"><?php echo "{$_SESSION['c12']}"?></option>
    			<option <?php if($rep1 == $_SESSION['c13']) {echo " selected";} ?> id="$c13"><?php echo "{$_SESSION['c13']}"?></option>
    			<option <?php if($rep1 == $_SESSION['c14']) {echo " selected";} ?> id="$c14"><?php echo "{$_SESSION['c14']}"?></option>
    			<option <?php if($rep1 == $_SESSION['c15']) {echo " selected";} ?> id="$c15"><?php echo "{$_SESSION['c15']}"?></option>
    			<option <?php if($rep1 == $_SESSION['c16']) {echo " selected";} ?> id="$c16"><?php echo "{$_SESSION['c16']}"?></option>
    			<option <?php if($rep1 == $_SESSION['c17']) {echo " selected";} ?> id="$c17"><?php echo "{$_SESSION['c17']}"?></option>
    			<option <?php if($rep1 == $_SESSION['c18']) {echo " selected";} ?> id="$c18"><?php echo "{$_SESSION['c18']}"?></option>	
             	</select>
    		<select name="rep2" id="rep2"style="position: absolute; top: 210px; left: 270px;">
              	<option <?php if($rep2 == $_SESSION['c11']) {echo " selected";} ?> id="$c11"><?php echo "{$_SESSION['c18']}"?></option>
    			<option <?php if($rep2 == $_SESSION['c12']) {echo " selected";} ?> id="$c12"><?php echo "{$_SESSION['c12']}"?></option>
    			<option <?php if($rep2 == $_SESSION['c13']) {echo " selected";} ?> id="$c13"><?php echo "{$_SESSION['c13']}"?></option>
    			<option <?php if($rep2 == $_SESSION['c14']) {echo " selected";} ?> id="$c14"><?php echo "{$_SESSION['c14']}"?></option>
    			<option <?php if($rep2 == $_SESSION['c15']) {echo " selected";} ?> id="$c15"><?php echo "{$_SESSION['c15']}"?></option>
    			<option <?php if($rep2 == $_SESSION['c16']) {echo " selected";} ?> id="$c16"><?php echo "{$_SESSION['c16']}"?></option>
    			<option <?php if($rep2 == $_SESSION['c17']) {echo " selected";} ?> id="$c17"><?php echo "{$_SESSION['c17']}"?></option>
    			<option <?php if($rep2 == $_SESSION['c18']) {echo " selected";} ?> id="$c18"><?php echo "{$_SESSION['c18']}"?></option>	
              	</select>
    		<select name="rep3" id="rep3"style="position: absolute; top: 515px; left: 50px;">
                <option <?php if($rep3 == $_SESSION['c11']) {echo " selected";} ?> id="$c11"><?php echo "{$_SESSION['c18']}"?></option>
    			<option <?php if($rep3 == $_SESSION['c12']) {echo " selected";} ?> id="$c12"><?php echo "{$_SESSION['c12']}"?></option>
    			<option <?php if($rep3 == $_SESSION['c13']) {echo " selected";} ?> id="$c13"><?php echo "{$_SESSION['c13']}"?></option>
    			<option <?php if($rep3 == $_SESSION['c14']) {echo " selected";} ?> id="$c14"><?php echo "{$_SESSION['c14']}"?></option>
    			<option <?php if($rep3 == $_SESSION['c15']) {echo " selected";} ?> id="$c15"><?php echo "{$_SESSION['c15']}"?></option>
    			<option <?php if($rep3 == $_SESSION['c16']) {echo " selected";} ?> id="$c16"><?php echo "{$_SESSION['c16']}"?></option>
    			<option <?php if($rep3 == $_SESSION['c17']) {echo " selected";} ?> id="$c17"><?php echo "{$_SESSION['c17']}"?></option>
    			<option <?php if($rep3 == $_SESSION['c18']) {echo " selected";} ?> id="$c18"><?php echo "{$_SESSION['c18']}"?></option>	
              	</select>
    		<select name="rep4" id="rep4" style="position: absolute; top: 210px; left: 130px;">
                <option <?php if($rep4 == $_SESSION['c11']) {echo " selected";} ?> id="$c11"><?php echo "{$_SESSION['c18']}"?></option>
    			<option <?php if($rep4 == $_SESSION['c12']) {echo " selected";} ?> id="$c12"><?php echo "{$_SESSION['c12']}"?></option>
    			<option <?php if($rep4 == $_SESSION['c13']) {echo " selected";} ?> id="$c13"><?php echo "{$_SESSION['c13']}"?></option>
    			<option <?php if($rep4 == $_SESSION['c14']) {echo " selected";} ?> id="$c14"><?php echo "{$_SESSION['c14']}"?></option>
    			<option <?php if($rep4 == $_SESSION['c15']) {echo " selected";} ?> id="$c15"><?php echo "{$_SESSION['c15']}"?></option>
    			<option <?php if($rep4 == $_SESSION['c16']) {echo " selected";} ?> id="$c16"><?php echo "{$_SESSION['c16']}"?></option>
    			<option <?php if($rep4 == $_SESSION['c17']) {echo " selected";} ?> id="$c17"><?php echo "{$_SESSION['c17']}"?></option>
    			<option <?php if($rep4 == $_SESSION['c18']) {echo " selected";} ?> id="$c18"><?php echo "{$_SESSION['c18']}"?></option>	
             	</select>
    		<select name="rep5" id="rep5"style="position: absolute; top: 210px; left: 260px;">
                <option <?php if($rep5 == $_SESSION['c11']) {echo " selected";} ?> id="$c11"><?php echo "{$_SESSION['c18']}"?></option>
    			<option <?php if($rep5 == $_SESSION['c12']) {echo " selected";} ?> id="$c12"><?php echo "{$_SESSION['c12']}"?></option>
    			<option <?php if($rep5 == $_SESSION['c13']) {echo " selected";} ?> id="$c13"><?php echo "{$_SESSION['c13']}"?></option>
    			<option <?php if($rep5 == $_SESSION['c14']) {echo " selected";} ?> id="$c14"><?php echo "{$_SESSION['c14']}"?></option>
    			<option <?php if($rep5 == $_SESSION['c15']) {echo " selected";} ?> id="$c15"><?php echo "{$_SESSION['c15']}"?></option>
    			<option <?php if($rep5 == $_SESSION['c16']) {echo " selected";} ?> id="$c16"><?php echo "{$_SESSION['c16']}"?></option>
    			<option <?php if($rep5 == $_SESSION['c17']) {echo " selected";} ?> id="$c17"><?php echo "{$_SESSION['c17']}"?></option>
    			<option <?php if($rep5 == $_SESSION['c18']) {echo " selected";} ?> id="$c18"><?php echo "{$_SESSION['c18']}"?></option>	
              	</select>
    		<select name="rep6" id="rep6"style="position: absolute; top: 515px; left: 20px;">
                <option <?php if($rep6 == $_SESSION['c11']) {echo " selected";} ?> id="$c11"><?php echo "{$_SESSION['c18']}"?></option>
    			<option <?php if($rep6 == $_SESSION['c12']) {echo " selected";} ?> id="$c12"><?php echo "{$_SESSION['c12']}"?></option>
    			<option <?php if($rep6 == $_SESSION['c13']) {echo " selected";} ?> id="$c13"><?php echo "{$_SESSION['c13']}"?></option>
    			<option <?php if($rep6 == $_SESSION['c14']) {echo " selected";} ?> id="$c14"><?php echo "{$_SESSION['c14']}"?></option>
    			<option <?php if($rep6 == $_SESSION['c15']) {echo " selected";} ?> id="$c15"><?php echo "{$_SESSION['c15']}"?></option>
    			<option <?php if($rep6 == $_SESSION['c16']) {echo " selected";} ?> id="$c16"><?php echo "{$_SESSION['c16']}"?></option>
    			<option <?php if($rep6 == $_SESSION['c17']) {echo " selected";} ?> id="$c17"><?php echo "{$_SESSION['c17']}"?></option>
    			<option <?php if($rep6 == $_SESSION['c18']) {echo " selected";} ?> id="$c18"><?php echo "{$_SESSION['c18']}"?></option>	
              	</select>
    		<select name="rep7" id="rep7" style="position: absolute; top: 210px; left: 150px;">
                <option <?php if($rep7 == $_SESSION['c11']) {echo " selected";} ?> id="$c11"><?php echo "{$_SESSION['c18']}"?></option>
    			<option <?php if($rep7 == $_SESSION['c12']) {echo " selected";} ?> id="$c12"><?php echo "{$_SESSION['c12']}"?></option>
    			<option <?php if($rep7 == $_SESSION['c13']) {echo " selected";} ?> id="$c13"><?php echo "{$_SESSION['c13']}"?></option>
    			<option <?php if($rep7 == $_SESSION['c14']) {echo " selected";} ?> id="$c14"><?php echo "{$_SESSION['c14']}"?></option>
    			<option <?php if($rep7 == $_SESSION['c15']) {echo " selected";} ?> id="$c15"><?php echo "{$_SESSION['c15']}"?></option>
    			<option <?php if($rep7 == $_SESSION['c16']) {echo " selected";} ?> id="$c16"><?php echo "{$_SESSION['c16']}"?></option>
    			<option <?php if($rep7 == $_SESSION['c17']) {echo " selected";} ?> id="$c17"><?php echo "{$_SESSION['c17']}"?></option>
    			<option <?php if($rep7 == $_SESSION['c18']) {echo " selected";} ?> id="$c18"><?php echo "{$_SESSION['c18']}"?></option>	
             	</select>
             		
        </td>
    	
    </tr>
    </table>
    Les 7 listes déroulantes de formulaire html sont placées à un endroit bien précis sur l'image.
    Les élèves doivent sélectionner le bon mot de la liste déroulante correspondant à la partie de l'image.
    Lorsque l'on augmente ou baisse le zoom : les menus déroulants se décalent et ne sont plus placés au bon endroit.
    Merci d'avance et bonne journée à tous.



    • Partager sur Facebook
    • Partager sur Twitter
      20 juin 2017 à 6:30:49

      Bonjour, 

      Ça n'a pas à voir avec ton problème, mais pourquoi tu utilises plein de if ? Est-ce que ça ne serait pas mieux d'utiliser une boucle for, ou mieux, une boucle foreach ? 

      • Partager sur Facebook
      • Partager sur Twitter
        20 juin 2017 à 7:18:20

        Bonjour,

        autre question : pourquoi un tableau pour faire de la mise en page ?

        Mais surtout ton problème est lié au "position: absolute" et au fait que probablement tu n'as pas mis de "position: relative" sur un parent pour en faire un référentiel - et donc tout bouge dès que "body" (le référentiel par défaut) change de taille.

        • Partager sur Facebook
        • Partager sur Twitter

        Pas d'aide concernant le code par MP, le forum est là pour ça :)

          22 juin 2017 à 4:21:17

          Merci pour la réponse.

          Que faudrait il que je fasse alors ?

          Je n'ai pas très bien compris le "position: relative"  ?

          • Partager sur Facebook
          • Partager sur Twitter
            22 juin 2017 à 5:13:43

            Le "position: relative;" ne fait pas sortir ton élément du flux comme le font "position: absolute;" et "position: fixed;". En utilisant "position: relative;", la position de ton élément se réfère (est relative) à sa position initiale. Par exemple, si tu utilises "left: 10;", il va décaler l'élément de 10 pixels vers la droite par rapport à sa propre position, en se référant à son coin supérieur gauche, donc, avec cette valeur de 10 pixels, le déplacement est très léger, 10 pixels c'est pas beaucoup.

            Maintenant, il y a une astuce qui consiste à utiliser "position: relative;" sans les valeurs top right bottom et left pour que "position: absolute;" de l'élément enfant ne se réfère pas au coin supérieur gauche de la page mais au coin supérieur gauche de cet élément parent. 

            • Partager sur Facebook
            • Partager sur Twitter
              22 juin 2017 à 8:47:42

              Merci pour ta réponse.

              Donc, je dois positionner mon <table> (parent) en position relative sans les réglages top left bottom et top, et utiliser "position: relative;" pour mes menus déroulants (enfant) ?

              Il est 9 h et c'est à nouveau moi.

              Cela fonctionne parfaitement bien ! Et en plus, j'ai compris !

              Merci beaucoup pour ton aide !

              Je te souhaite une bonne journée.

              Salutations reconnaissantes.

              -
              Edité par musicjmb 22 juin 2017 à 9:06:02

              • Partager sur Facebook
              • Partager sur Twitter

              Mes listes déroulantes se décalent avec le zoom

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown