IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Tableau partagé ( Scrollbar X,Y) finition


Sujet :

Tableau en CSS

  1. #1
    Membre habitué Avatar de Skunka
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 135
    Points : 158
    Points
    158
    Par défaut Tableau partagé ( Scrollbar X,Y) finition
    Bonjour,

    Etant un développeur de niveau 'inexistant' en mise en page, je fait appelle à votre super talent pour m'aider à apporter les dernières modification à mon tableau. Après des heures de galère, j'ai presque atteint mon objectif de réaliser un tableau 'partagé' (comme sur excel d'après un membre de mon entreprise dans laquelle je réalise mon stage). En effet, en m'aidant de http://jsfiddle.net/0Lm1tdj3/6/ , j'ai pu construire ce tableau mais les données les plus en bas et les plus à droites de ce dernier ne s'affiche pas lors du scroll sur X ou Y. Pour plus de compréhension, voici le tableau que j'ai actuellement:
    Nom : developpez2.JPG
Affichages : 109
Taille : 146,3 Ko
    (désolé des gribouillages bleus mais il vaut mieux que les nom et prénoms restent cachés)

    Vous pouvez le constater, sur cette image, j'ai scroll au maximum sur X et Y, cependant je n'aperçois pas les données des derniers chauffeurs et à moitié les données du vendredi aprem... Chose qui ne convient évidemment pas.

    Je vous donne la construction de la page:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
     
    <script type="text/javascript">
    	//Gestion des icônes de commentaires
    	function showHide(span){
    		//Le traitement diffère selon le span puis selon le display de <p> dans le span
    		if (span.className == "glyphicon glyphicon-plus") {
    			//On affiche l'input text pour saisir le commentaire si il est caché
    			if (span.lastChild.style.display == "none") {
    				span.lastChild.style.display = "flex";
    				span.lastChild.style.position = "absolute";
    				span.lastChild.lastChild.focus();
    			} else { //Sinon, on le cache et on change l'icone si nécessaire
    				span.lastChild.style.display = "none";
    				span.lastChild.style.position = "relative";
    				if (span.lastChild.lastChild.value.length > 0) {
    					span.className = "glyphicon glyphicon-info-sign";
    				}
    			}
    		} else { //Sinon span.className = "glyphicon glyphicon-info-sign"
    			if (span.lastChild.style.display == "none") {
    				span.lastChild.style.display = "flex";
    				span.lastChild.style.position = "absolute";
    				span.lastChild.lastChild.focus();
    			} else {
    				span.lastChild.style.display = "none";
    				span.lastChild.style.position = "relative";
    				if (span.lastChild.lastChild.value.length < 1) {
    					span.className = "glyphicon glyphicon-plus";
    				}
    			}
    		}
    	}
     
    	//Construit le tableau avec les scrollbars 
    	$(function () {
    		$('.SBWrapper').scroll(function () {
    			var rc = $(this).closest('.relativeContainer');
    			var lfW = rc.find('.leftSBWrapper');
    			var tpW = rc.find('.topSBWrapper');
     
    			lfW.css('top', ($(this).scrollTop()*-1));
    			tpW.css('left', ($(this).scrollLeft()*-1));        
    		});
    	});
    </script>
     
    <body>
    	<?php 
    	echo "Semaine ".$semaine;
    	?>
    	<form method="POST" action="index.php?control=planningChantier&action=modificationSave">
    		<input type="hidden" name="semaine" value=" <?php echo($semaine); ?>">
    		<div id="container">
    			<div class="relativeContainer">
    				<!-- Cellule fixe Row 1,2; Col 1 -->
    				<div class="fixedTB">
    					<table class="tableauVide">
    						<tr><td></td></tr>
    						<tr><td></td></tr>
    					</table>
    				</div>
    				<div class="leftContainer">
    					<div class="leftSBWrapper">
    						<table border="1">
    							<?php
    							$ns = 0;
    							foreach ($plannings as $p ) {
    								if($p->getSalarie()->getNumSalarie() != $ns){
    									$ns = $p->getSalarie()->getNumSalarie();
    									echo "<tr><td class='planningSalarie'> <input type='hidden' name='salarie[]'' value='".$p->getSalarie()->getNumSalarie()."'>" .$p->getSalarie()->getNomSalarie()." ".$p->getSalarie()->getPrenomSalarie()."</td></tr>";
    								}
    							}
    							?>
    						</table>
    					</div>
    				</div>
    				<div class="rightContainer">
    					<div class="topSBWrapper">
    						<table border="1" style="text-align: center;">
    							<tr>
    								<th class="planningJour" colspan="2">Lundi</th>
    								<th class="planningJour" colspan="2">Mardi</th>
    								<th class="planningJour" colspan="2">Mercredi</th>
    								<th class="planningJour" colspan="2">Jeudi</th>
    								<th class="planningJour" colspan="2">Vendredi</th>
    							</tr>
    							<tr>
    								<td class="planningCreneau">M</td>
    								<td class="planningCreneau">A</td>
    								<td class="planningCreneau">M</td>
    								<td class="planningCreneau">A</td>
    								<td class="planningCreneau">M</td>
    								<td class="planningCreneau">A</td>
    								<td class="planningCreneau">M</td>
    								<td class="planningCreneau">A</td>
    								<td class="planningCreneau">M</td>
    								<td class="planningCreneau">A</td>
    							</tr>
    						</table>
    					</div>
    					<div class="SBWrapper">
    						<table id="tabPlanning">
    						<?php
    						//Gestion des variables pour l'attribution des class / couleurs et des variables pour la lecture du tableau
    						$css = [['vert', 'vert_clair'], ['orange', 'orange_clair']];
    						$l = 0;
    						$c = 0;
    						$i = 0;
     
    						//Génération du tableau
    						foreach ($plannings as $p) { 
     
    							//Si le reste de $i divisé par 10 = 0 alors 10 boucles sont passées et une ligne est remplie (5 jours séparés en 2 créneaux), on passe donc au salarié suivant (ligne suivante)
    							if ($i%10 == 0) {
    								if ($i == 0){ //On vérifie si on est à la première ligne / colonne
    									echo "<tr>";
    								} else {
    									echo "</tr>";
    									$l++;
    									$c=0;
    									echo "<tr>";
    								}
    								$class = $css[$l%2][$c%2];
    							} 
    							echo "<td class='planning ".$class."'>";
    							//Liste déroulante des chantiers
    							echo "<select name='chantier[]' class='".$class."'>";
    							foreach ($chantiers as $ch) {
    								//Si le chantier que l'on insère dans la liste est celui assigné au salarié, alors il sera affiché par défaut.
    								if ($p->getChantier()->getNumChantier() == $ch->getNumChantier()) {
    									if ($i%10 !=0 && $ch->getNumChantier() == 1 && $i%10 !=9) { //Si on ne remplis pas la première ou dernière colonne d'une nouvelle ligne et que le chantier est "aucun"
    										echo "<option selected='selected' value='0'> </option>";
    										echo "<option value='".$ch->getNumChantier()."'>".$ch->getNomChantier()."</option>";
    									} else {
    										echo "<option selected='selected' value='".$ch->getNumChantier()."'>".$ch->getNomChantier()."</option>";
    									}
    								} 
    								else {
    									echo "<option value='".$ch->getNumChantier()."'>".$ch->getNomChantier()."</option>";
    								} //if end
    							} //foreach end
    							echo "</select>";
     
    							echo "<select name='vehicule[]' class='".$class."'>";
    							//Liste déroulante des véhicules
    							foreach ($vehicules as $v) {
    								if ($p->getVehicule()->getNumVehicule() == $v->getNumVehicule()) {
    									if ($i%10 !=0 && $v->getNumVehicule() == 1 && $i%10 != 9) {
    										echo "<option selected='selected' value='0'> </option>";
    										echo "<option value='".$v->getNumVehicule()."'>".$v->getNomVehiculeABRG()."</option>";
    									} else {
    										echo "<option selected='selected' value='".$v->getNumVehicule()."'>".$v->getNomVehiculeABRG()."</option>";
    									}
    								} else {
    									echo "<option value='".$v->getNumVehicule()."'>".$v->getNomVehiculeABRG()."</option>";
    								}
    							}
    							echo "</select>";
     
    							//Glyphicon de commentaire
    							if (!is_null($p->getCommentaire())) {
    								echo "<div class='commentaire'>";
    									echo "<span class='glyphicon glyphicon-info-sign' onclick='showHide(this)'>";
    										echo "<p class='commSaisie' style='display:none'>";
    											echo "<input type='text' name='commentaires[]' value='".$p->getCommentaire()."'>";
    										echo "</p>";
    									echo "</span>";
    								echo "</div>";
    							} else {
    								echo "<div class='commentaire'>";
    									echo "<span class='glyphicon glyphicon-plus' onclick='showHide(this)'>";
    										echo "<p class='commSaisie' style='display:none'>";
    											echo "<input type='text' name='commentaires[]'>";
    										echo "</p>";
    									echo "</span>";
    								echo "</div>";
    							}
     
    							echo "</td>";
    							$c++;
    							$i++;
    						} //for end
    						?>
    							</tr>
    						</table>
    					</div>
    				</div>
    			</div>
    		<button type="submit" class="btn btn-default">Valider</button>
    		</div>
    	</form>
    </body>

    Ainsi que le fichier.css correspondant:
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    /* Taille des tableaux ayant les scrollbar */
    .planning{
    	width: 150px;
    	height: 50px;
    }
     
    .tableauVide{
    	border: none;
    	width: 150px;
    	height: 50px;
    }
     
    .planningJour{
    	width: 300px;
    	height: 25px;
    	background-color: #cccccc;
    }
     
    .planningCreneau{
    	background-color: #cccccc;
    	width: 150px;
    	height: 25px;
    }
     
    .planningSalarie{
    	background-color: #cccccc;
    	width: 160px;
    	height: 50px;
    }
     
    #tabPlanning{
    	border-style: solid;
    	border-bottom: 1px;
    	border-right: 1px;
    	border-width: 1px;
    }
     
    /* Scrollbar des tableaux */
    #container { margin: auto; overflow: hidden; width: 95%; height: 80%; }
    .relativeContainer { position: relative; width: 1100px; height: 550px; overflow: hidden; border: 1px solid green; }
     
    .fixedTB { position: absolute; left: 0px; top: 0px; z-index: 11; width: 150px; height: 50px;}
     
    .leftContainer { position: absolute; left: 0px; top: 50px; height: auto; overflow: hidden;  }
     
    .rightContainer { position: absolute; left: 160px; top: 0px; width: 950px; overflow: hidden; }
     
    .leftSBWrapper { position: relative; left: 0px; top: 0px; z-index: 10; }
    .topSBWrapper { position: relative; left: 0px; top: 0px; z-index: 10; width: 1600px; }
     
    .SBWrapper { width: 1000px; height: 600px; overflow: auto; }

    J'ai compris en bonne partie le fonctionnement de ce code mais malgré cela, je me retrouve bloqué
    J'essaye de bidouiller les width / height de la partie "/* Scrollbar des tableaux */" mais je ne trouve pas le bon équilibre.

    Merci d'avance à ceux qui prendront le temps de m'aider, sincèrement.

    Cordialement,
    Skunka.
    Traverse les rues ...

    Git: https://github.com/BlueSkunka

    Débutant à vie

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    le code PHP n'a pas d'intérêt ici.
    Il faut le code HTML généré ("Ctrl"+"U"). (le code nécessaire et suffisant)

  3. #3
    Membre habitué Avatar de Skunka
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 135
    Points : 158
    Points
    158
    Par défaut
    Bonjour,

    J'ai mis le code source en pièce-jointe dans un fichier zippé (le fichier texte était trop lourd pour être importé et simplement collé le code dans la page, la faisait totalement ramer ...).
    Fichiers attachés Fichiers attachés
    Traverse les rues ...

    Git: https://github.com/BlueSkunka

    Débutant à vie

  4. #4
    Invité
    Invité(e)
    Par défaut
    "code nécessaire et suffisant" veut aussi dire qu'un EXTRAIT du tableau suffit.
    Voire du contenu "bidon".
    Juste assez pour tester.

    Perso, je n'ouvre pas les archives.

  5. #5
    Membre habitué Avatar de Skunka
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 135
    Points : 158
    Points
    158
    Par défaut
    Excuse-moi, par 'nécessaire et suffisant' je pensais que tu parlais du code source de manière générale.

    Je l'ai reconstruis avec des données bidons voire sans données pour alléger tout ça. Je remarque que, maintenant, le scroll horizontal ne s'active plus et que les <td class='planning'> ne récupère pas la largeur de 150px comme indiqué dans le fichier css.
    Code source:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    <script type="text/javascript">
            //Construit le tableau avec les scrollbars 
            $(function () {
                    $('.SBWrapper').scroll(function () {
                            var rc = $(this).closest('.relativeContainer');
                            var lfW = rc.find('.leftSBWrapper');
                            var tpW = rc.find('.topSBWrapper');
                            
                            lfW.css('top', ($(this).scrollTop()*-1));
                            tpW.css('left', ($(this).scrollLeft()*-1));        
                    });
            });
    </script>
     
    <body>
    	Semaine 7	<form method="POST" action="index.php?control=planningChantier&action=modificationSave">
    		<input type="hidden" name="semaine" value=" 7">
    		<div id="container">
    			<div class="relativeContainer">
    				<!-- Cellule fixe Row 1,2; Col 1 -->
    				<div class="fixedTB">
    					<table class="tableauVide">
    						<tr><td></td></tr>
    						<tr><td></td></tr>
    					</table>
    				</div>
    				<div class="leftContainer">
    					<div class="leftSBWrapper">
    						<table border="1">
    							<tr><td class='planningSalarie'> <input type='hidden' name='salarie[]'' value='7'>ALLO Jean Noël</td></tr><tr><td class='planningSalarie'> <input type='hidden' name='salarie[]'' value='16'>ARBRE Jean Luc</td></tr><tr><td class='planningSalarie'> <input type='hidden' name='salarie[]'' value='8'>AUR Frédéric</td></tr><tr><td class='planningSalarie'> <input type='hidden' name='salarie[]'' value='17'>DARD Kevin</td></tr><tr><td class='planningSalarie'> <input type='hidden' name='salarie[]'' value='11'>DEC Thierry</td></tr><tr><td class='planningSalarie'> <input type='hidden' name='salarie[]'' value='9'>EAU Guillaume</td></tr><tr><td class='planningSalarie'> <input type='hidden' name='salarie[]'' value='18'>GIR David</td></tr><tr><td class='planningSalarie'> <input type='hidden' name='salarie[]'' value='20'>LUC Marc</td></tr><tr><td class='planningSalarie'> <input type='hidden' name='salarie[]'' value='22'>MATHS Nicolas</td></tr><tr><td class='planningSalarie'> <input type='hidden' name='salarie[]'' value='10'>NEIX Christian</td></tr><tr><td class='planningSalarie'> <input type='hidden' name='salarie[]'' value='23'>NOIRET Baptiste</td></tr><tr><td class='planningSalarie'> <input type='hidden' name='salarie[]'' value='24'>ROUGE Jean Marie</td></tr><tr><td class='planningSalarie'> <input type='hidden' name='salarie[]'' value='19'>ROUX Denis</td></tr><tr><td class='planningSalarie'> <input type='hidden' name='salarie[]'' value='15'>TED Guillaume</td></tr><tr><td class='planningSalarie'> <input type='hidden' name='salarie[]'' value='21'>TERRE Richard</td></tr>						</table>
    					</div>
    				</div>
    				<div class="rightContainer">
    					<div class="topSBWrapper">
    						<table border="1" style="text-align: center;">
    							<tr>
    								<th class="planningJour" colspan="2">Lundi</th>
    								<th class="planningJour" colspan="2">Mardi</th>
    								<th class="planningJour" colspan="2">Mercredi</th>
    								<th class="planningJour" colspan="2">Jeudi</th>
    								<th class="planningJour" colspan="2">Vendredi</th>
    							</tr>
    							<tr>
    								<td class="planningCreneau">M</td>
    								<td class="planningCreneau">A</td>
    								<td class="planningCreneau">M</td>
    								<td class="planningCreneau">A</td>
    								<td class="planningCreneau">M</td>
    								<td class="planningCreneau">A</td>
    								<td class="planningCreneau">M</td>
    								<td class="planningCreneau">A</td>
    								<td class="planningCreneau">M</td>
    								<td class="planningCreneau">A</td>
    							</tr>
    						</table>
    					</div>
    					<div class="SBWrapper">
    						<table id="tabPlanning">
    						<tr><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td></tr><tr><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td></tr><tr><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td></tr><tr><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td></tr><tr><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td></tr><tr><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td></tr><tr><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td></tr><tr><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td></tr><tr><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td></tr><tr><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td></tr><tr><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td></tr><tr><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td></tr><tr><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td></tr><tr><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td><td class='planning orange'></td></tr><tr><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td><td class='planning vert'></td>							</tr>
    						</table>
    					</div>
    				</div>
    			</div>
    		<button type="submit" class="btn btn-default">Valider</button>
    		</div>
    	</form>
    </body>
    Traverse les rues ...

    Git: https://github.com/BlueSkunka

    Débutant à vie

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bon.

    Sans rentrer dans le détail, j'ai surtout l'impression de les cases ne font pas les dimensions voulues.
    C'est dû au fait que dans une <table>, les cases (<th>, td>) s'adaptent à leur contenu.

    1- pour fixer les largeurs : CSS - table-layout
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #container table {
       table-layout:fixed;
    }

    2- Idem pour les hauteurs des cases : là, il faut sans doute augmenter un peu la hauteur
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    .planning{
    	width: 150px;
    	height: 75px; /* au lieu de 50px */
    }
    ...
    .planningSalarie{
    	background-color: #cccccc;
    	width: 160px;
    	height: 75px; /* au lieu de 50px */
    }

    3- Par contre, si tu veux que tout soit "responsive", alors ça va très vite se compliquer...

  7. #7
    Membre habitué Avatar de Skunka
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 135
    Points : 158
    Points
    158
    Par défaut
    Bien,
    la tableau s'affiche entièrement sur la hauteur bien qu'il faudrait effectivement du responsive pour la hauteur (nombre de salarié variable). Cependant, il y a toujours un problème de largeur dans le tableau, les td.planning ont une width de 146.4 et non de 150, ce qui provoque un décalage.

    Il y aurait bien une solution pour du full responsive (http://jsfiddle.net/rCuPf/7/?utm_sou...campaign=rCuPf) et, comme tu dis, cela s'est très vite compliqué! Je vais tout de même explorer cette solution et essayer de l'adapter à mon besoin.
    Traverse les rues ...

    Git: https://github.com/BlueSkunka

    Débutant à vie

  8. #8
    Membre habitué Avatar de Skunka
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 135
    Points : 158
    Points
    158
    Par défaut
    Cette seconde solution est fructueuse! Malgré l'aspect complexe, il suffit de modifier deux variables pour définir le nombre de ligne / colonne fixes et le tour est joué.

    Sujet résolus.
    Merci de tes réponses, tu m'as appris des choses, je t'en remercie.

    Cordialement,
    Skunka.
    Traverse les rues ...

    Git: https://github.com/BlueSkunka

    Débutant à vie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tableau avec scrollbar
    Par luisattack dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 22/04/2010, 13h44
  2. tableau avec scrollbar
    Par mghari11 dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 22/06/2008, 12h36
  3. Taille tableau et scrollbar
    Par drzoidberg dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 21/08/2007, 16h07
  4. tableau avec scrollbar et légende fixe
    Par psgman113 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/08/2007, 10h34
  5. Tableau partagé entre toutes les sessions
    Par mobscene dans le forum Langage
    Réponses: 1
    Dernier message: 21/12/2006, 13h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo