Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > HTML / DHTML / XHTML
HTML / DHTML / XHTML Forum sur la programmation HTML / DHTML/ XHTML et la validation W3C. Cours (X)HTML, FAQ (X)HTML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/03/2011, 15h02   #1
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 41
Points : 12
Points : 12
Par défaut Affichage qui se déforme

Bonjour,
Je suis actuellement sur un code avec lequel j'obtiens une erreur que je ne comprends pas... Pourtant, j'ai un code similaire juste au dessus, qui fonctionne parfaitement... ^^
Code :
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
<table id="tablenote">
	<tr>
		<th class="headern">Domaine</th>
		<th class="headern">Note</th>
	</tr>
	<tr>
		<td class="domainn1">Graphisme</td>
		<td class="noten1">15</td>
	</tr>
	<tr>
		<td class="domainn2">Gameplay</td>
		<td class="noten2">17</td>
	</tr>
	...
</table>
<table id="note_mod">
	<tr>
		<th class="headern">Domaine</th>
		<th class="headern">Note</th>
	</tr>
	<tr>
		<td class="domainn1">Graphisme</td>
		<td class="noten1">
			<select name="note[]"  class="champN" size="" title="Graphisme">
				<option value="1">1 / 20</option>
				<option value="2">2 / 20</option>
				...
				<option value="19">19 / 20</option>
				<option value="20">20 / 20</option>
			</select>
		</td>
	</tr>
	<tr>
		<td class="domainn2">Gameplay</td>
		<td class="noten2">
			<select name="note[]"  class="champN" size="" title="Gameplay">
				<option value="1">1 / 20</option>
				<option value="2">2 / 20</option>
				...
				<option value="20">20 / 20</option>
			</select>
		</td>
	</tr>
	...
</table>
(Code légèrement abbrégé... ^^)
Et voici le CSS qui va avec...
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#tablenote {
	border: thin solid #000000;
	border-collapse: collapse;
	border-spacing: 0px;
	width: 300px;
	color: #000000;
	margin: auto;
}
#note_mod {
	border: thin solid #000000;
	border-collapse: collapse;
	border-spacing: 0px;
	width: 300px;
	color: #000000;
	margin: auto;
	display:none;
}
Le code css des cellules n'est normalement pas primodiale pour l'erreur... Il est relativement basique juste avec des définitions de couleurs ou autres...
Et mon problème, c'est que je fais apparaître un seul des 2 tableaux à la fois. Lorsque je charge la page, le premier tableau s'affiche, et il s'affiche correctement...
Ensuite, j'ai un bouton pour faire apparaitre le 2e tableau et cacher le premier, et là, les problèmes commencent... En effet, il semble qu'il ne prend plus les largeurs en considération, ni les marges! Ce qui fait que j'obtiens des tableaux à la largeur minimale, et sans marge latérale, ce qui fait qu'il n'est plus centré sur la page...
Et à partir de ce moment, que j'affiche le premier tableau (qui fonctionnait bien) ou le 2e, aucun des 2 ne s'affiche juste...
47-47 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2011, 17h49   #2
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 932
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 932
Points : 4 752
Points : 4 752
Bonjour,
il eut été plus intéressant que tu nous montras la fonction qui affiche/masque les tableaux.
NoSmoking est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2011, 21h47   #3
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 41
Points : 12
Points : 12
Elle est tout ce qu'il y a de plus simple... ^^ Je teste la visibilité du premier élément, si elle est sur visible, je commute les 2, puis l'inverse sinon... Ce qui donne ceci:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
function change(id1,id2)
{
	if(document.getElementById(id1).style.display == 'none')
	{
		document.getElementById(id1).style.display = 'inline';
		document.getElementById(id2).style.display = 'none';
	}
	else
	{
		document.getElementById(id1).style.display = 'none';
		document.getElementById(id2).style.display = 'inline';
	}
}
Mais sincèrement, je doute que ca vienne de là, car tous les autres endroits ou la fonction est lancée, je n'ai aucuns bugs... Mais bon, sait-on jamais... ^^
47-47 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2011, 23h02   #4
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 932
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 932
Points : 4 752
Points : 4 752
Citation:
Envoyé par 47-47 Voir le message
Mais sincèrement, je doute que ca vienne de là, car tous les autres endroits ou la fonction est lancée, je n'ai aucuns bugs... Mais bon, sait-on jamais... ^^
mets block à la place de inline, une table est un élément block et non inline par défaut
NoSmoking est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2011, 23h37   #5
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 41
Points : 12
Points : 12
oops.. et si j'ai peu d'éléments tableaux, pour les autres parties, ca risque de poser problème?! ^^

Il s'agit de balises "section" principalement pour les autres éléments... Mais on y trouve également des spans, et 2-3 autres balises je crois... ^^

En attendant une éventuelle réponse, j'ai cherché un peu sur le web... Et malgré que je n'ai pas trouvé de réponse claire et nette, j'ai trouvé ma solution!

Code :
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
function change(id1,id2)
{
	if(document.getElementById(id1).nodeName == "TABLE")
	{
		if(document.getElementById(id1).style.display == 'none')
		{
			document.getElementById(id1).style.display = 'table';
			document.getElementById(id2).style.display = 'none';
		}
		else
		{
			document.getElementById(id1).style.display = 'none';
			document.getElementById(id2).style.display = 'table';
		}
	}
	else
	{
		if(document.getElementById(id1).style.display == 'none')
		{
			document.getElementById(id1).style.display = 'inline';
			document.getElementById(id2).style.display = 'none';
		}
		else
		{
			document.getElementById(id1).style.display = 'none';
			document.getElementById(id2).style.display = 'inline';
		}
	}
}
A noter que j'ai utilisé l'attribut "table" pour le display, qui correspond encore mieux au résultat attendu...
47-47 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 11h23   #6
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 073
Points : 4 073
Nettement plus simple : sans tester le type d'élément, sache que si tu attribues une chaine vide à la propriété style.display, le moteur rétablit l'élément dans son mode de rendu "par défaut" ^^
Code javascript :
1
2
3
4
function onOff(elem) {
   if (elem.style.display == "none") elem.style.display = "";
   else elem.style.display = "none";
}
Pour les éléments "block" et "inline", ça marche nickel. A voir éventuellement si tout est OK pour l'ensemble des modes de rendu sur tous les différents navigateurs, mais jusqu'ici je n'ai pas eu de problème avec cette méthode.
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 07h48   #7
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 932
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 932
Points : 4 752
Points : 4 752
oui mais UNIQUEMENT si le display:none est placé dans la balise.
NoSmoking est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h28.


 
 
 
 
Partenaires

Hébergement Web