28173 sujets

CSS et mise en forme, CSS3

Bonjour à Tous et à Toutes !

Voila ma page : Lien supprimé. Il se trouve que l'image background s'affiche nikel sous ie mais pas sous firefox (tiens, c'est rare Smiley lol ).

Voici les captures :
upload/6498-ff.jpg
upload/6498-ie.jpg

Et voici le code :

<div id="centre" style="width: 100%;">
	<div style="position:relative; width:800px; left:50%; margin-left:-400px; background-image: url(images/8.gif); background-position: 0 0;">
		<div style="position:relative; width:75px; height:91px; float:left;"><img src="images/5.gif" style="width:75px; height:91px; display:block;" alt="" /></div>
		<div style="float:left;">
			Texte<br/>
			Texte<br/>
			Texte<br/>
			Texte<br/>
			Texte<br/>
			Texte<br/>
			Texte<br/>
			Texte<br/>
			Texte<br/>
			Texte<br/>
			Texte<br/>
			Texte<br/>
		</div>
		<div style="position:relative; width:75px; height:91px; float:right;"><img src="images/7.gif" style="width:75px; height:91px; display:block;" alt="" /></div>
	</div>
</div>

/*et en css*/
#centre {
	position:relative;
	border: 0px;
}


Voila, je vois pas trop d'où vient le problème mais vous, vous le voyer j'en suis sur !! Smiley ravi

Merci d'avance.
Bonne soirée.
FluidBlow.
Modifié par FluidBlow (06 Jun 2006 - 17:37)
Salut


<div style="position: relative; width: 75px; top: 0px; float: left;">
    <img src="images/5.gif" style="width: 75px; [#red]height: 91px;[/#] display: block;" alt="">
</div>


Il fait ce que tu lui demande !

A+
gege71 a écrit :
Salut


<div style="position: relative; width: 75px; top: 0px; float: left;">
    <img src="images/5.gif" style="width: 75px; [#red]height: 91px;[/#] display: block;" alt="">
</div>


Il fait ce que tu lui demande !

A+



<div style="position: relative; width: 75px; top: 0px; float: left;">
    <img src="images/5.gif" style="width: 75px; [#red]height: 100%;[/#] display: block;" alt="">
</div>


Oui mais la, sa ne change rien Smiley decu .

Merci quand même.
Bonne soirée.
FluidBlow
Oui mais 100% de quoi ?

Quand tu dit a un élément de prendre 100% il prend la mesure de son parent qui doit avoir une hauteur définie (et valide)


A+
J'ai pas l'impression que tu aies lu ce que je t'ai marqué précédemment:
pas de definition de taille des images au niveau css!
Regarde bien mon code entier :

Html :
<div id="conteneur" style="width:100%">
	<div id="header" style="width:100%; height:234px;">
		<div style="position:relative; width:800px; top:0px; left:50%; margin-left:-400px;">
			<img src="images/1.gif" style="width:800px; height:150px; display:block;" alt="" />
		</div>
		<div style="position:relative; width:800px; top:0px; left:50%; margin-left:-400px;">
			<img src="images/2.gif" style="width:210px; height:93px; display:block;  float:left;" alt="" />
			<div style="background-image: url(images/3.gif); width:380px; height:93px; float:left;">

				<br/>Titre
			</div>
			<img src="images/4.gif" style="width:210px; height:93px; display:block;  float:left;" alt="" />
		</div>
	</div>
	<div id="centre" style="width: 100%;">
		<div style="position:relative; width:800px; left:50%; margin-left:-400px; background-image: url(images/11.gif);">
			<div style="position:relative; width:75px; top:0px; float:left;"><img src="images/5.gif" style="width:75px; height:91px; display:block;" alt="" /></div>
			<div style="float:left;">

				Texte<br/>
				Texte<br/>
				Texte<br/>
				Texte<br/>
				Texte<br/>
				Texte<br/>

				Texte<br/>
				Texte<br/>
				Texte<br/>
				Texte<br/>
				Texte<br/>
				Texte<br/>

			</div>
			<div style="position:relative; width:75px; top:0px; float:right;"><img src="images/7.gif" style="width:75px; height:91px; display:block;" alt="" /></div>
		</div>
	</div>
	<div class="pied" style="width:800px; top:0px; height: 20px; left:50%; margin-left:-400px;">
		<img src="images/13.gif" style="width:800px; height:20px; display:block; border:0;" alt="" />
	</div>
	<div id="pied" style="width:100%; height: 75px; background-image: url(images/14.gif);">
		<a href="http://fluidblow.free.fr"><img src="images/17.gif" style="width:190px; height:75px; display:block; float:right; border:0;" alt="" /></a>

	</div>
</div>


Css :
body {
	color: #5a5a5a;
	font-size: 11px;
	font-family: tahoma;
	text-decoration:none;
	margin: 0px;
	padding: 0px;
	background: #F6F6F6;
}

#conteneur {
	position: absolute;
	display:block;
	float:left;
}

#header {
	position:relative;
	border: 0px;
	background: url(images/back_haut.gif) top; 
	background-repeat: repeat-x;
	background-color: #F6F6F6;
}

#centre {
	position:relative;
	border: 0px;
}

#pied {
	position:relative;
	border:0px;
	clear: both;
}

.pied {
	position:relative;
	border:0px;
	clear: both;
}


En tout cas, merci beaucoup de t'occuper de moi.
Bonne soirée.
FluidBlow.
Modifié par FluidBlow (05 Jun 2006 - 23:36)
Hermann a écrit :
J'ai pas l'impression que tu aies lu ce que je t'ai marqué précédemment:
pas de definition de taille des images au niveau css!


Voila j'ai réecrit tout mon code sans taille d'image mais sa ne change rien
Smiley decu
Merci à vous deux quand même en attendant que vous trouviez la bonne réponse Smiley smile

Bonne soirée.
FluidBlow
Bonjour Fluidblow,

Désolé de me répeter mais le problème viens de ta construction qui n'est pas compatible avec ce que tu veux faire.

Une piste de travail :


<div style="position:relative; width:100%; top:0px; float:left; background: transparent url(images/5.gif) repeat-y left top">
          <div style="position:relative; width:100%; top:0px; float:right; background: transparent url(images/7.gif) repeat-y right top">
					
					<div style="float:left;">
						Texte<br/>
						Texte<br/>
						Texte<br/>
						Texte<br/>
						Texte<br/>
						Texte<br/>
						Texte<br/>
						Texte<br/>
						Texte<br/>
						Texte<br/>
						Texte<br/>
						Texte<br/>
					</div>
				</div>
                       </div>


Bon courage,
Aymeric

PS : plus sérieusement, il va vraiment falloir que tu te mette à séparer tes css de contenu html car à force, si tu ne fais pas cet effort, le gens finiront par ne plus faire l'effort de chercher les solutions à tes problèmes.
Je précise, ce n'est pas pour te faire la morale, mais pour que tu puisse mieux avancer dans ton travail.
Modifié par AymericJ (06 Jun 2006 - 11:45)
Bonjour,

a écrit :
il va vraiment falloir que tu te mette à séparer tes css de contenu html


Je ne comprends pas ce que tu veut dire par la...
En attendant la piste que tu ma fournit n'est plus aligner au centre, est-ce volontaire ?

Merci de s'occuper de moi
Bonne journée.
FluidBlow.
Bonjour à tous Smiley smile

Je viens de trouver mon problème grâce à la piste d'AymericJ, qui décidement est vraiment très fort Smiley biggrin En tout cas merci à tous vous êtes tous super Smiley cligne .

Encore merci et bonne fin de journée à tous !
FluidBlow Smiley lol
Rebonjour Fluidblow,
Alors dans l'ordre :
Je suis content que tu ai reglé ton problème.
Je ne suis pas vraiment "fort" mais j'ai commencé par intégrer pas mal de tutoriels et d'aides diverses avant de m'attaquer aux css, du coups y'a pas mal de cas de figure qui me sautent aux yeux, même si je ne propose pas toujours la solution la plus propre.

Ce que je veux dire par séparer tes css de ton html, c'est qu'en intégrant tes styles dans ton html, tu as un code "fouilli", ça ne veut pas dire qu'il ne fonctionne pas, mais qu'il est difficile de voir si c'est un problème css ou html structurel du premier coups d'oeil.

Prenons ton exemple :

<div id="centre" style="width: 100%;">

		<div style="position:relative; width:800px; left:50%; margin-left:-400px; background-image: url(images/11.gif);">

			<div style="position:relative; width:75px; top:0px; float:left;"><img src="images/5.gif" style="width:75px; height:91px; display:block;" alt="" /></div>

			<div style="float:left;">



				Texte<br/>

				Texte<br/>

				Texte<br/>

				Texte<br/>

				Texte<br/>

				Texte<br/>



				Texte<br/>

				Texte<br/>

				Texte<br/>

				Texte<br/>

				Texte<br/>

				Texte<br/>



			</div>

			<div style="position:relative; width:75px; top:0px; float:right;"><img src="images/7.gif" style="width:75px; height:91px; display:block;" alt="" /></div>

		</div>


On est obligé de prendre un temps pour depatouiller les styles de la structure, et donc perte de temps.

Essayons une structure html "propre" :

<div id="centre" >
		<div>
			<div>
				<img src="images/5.gif" width="75" height="91" alt="" />
			</div>

			<div >
				Texte<br/>
				Texte<br/>
				Texte<br/>
				...
			</div>
			<div>
				<img src="images/7.gif" width="75" height="91" alt="" />
			</div>
		</div>
</div>


On reconnait du premier coups d'oeil la structure html.

En partant ensuite que chaque bloc ne sera présen qu'une fois dans la page, on peut lui attribuer une id unique ce qui donne :

<div id="centre" >
		<div id="fond">
			<div id=gauche">
				<img src="images/5.gif" width="75" height="91" alt="" />
			</div>

			<div id=texte" >
				Texte<br/>
				Texte<br/>
				Texte<br/>
				...
			</div>
			<div id=droite">
				<img src="images/7.gif" width="75" height="91" alt="" />
			</div>
		</div>
</div>


On reconnait toujours la structure au premier coups d'oeil, la seule différence est que l'on a nommé les blocs.
Si, par exemple on retrouvait plusieures fois droite, gauche, texte dans la page, on aurait préféré une class à une id, à la place de id=droite" par exemple on aurait utilisé class="droite", on voir voir la différence ensuite.

Sur cette structure html, on va y greffer le css, mais soit dans un fichier externe soit entre les balises d'appel au css dans la page, voir les différents tutoriels alsacreations.

Exemple dans ton cas :


#centre {
width: 100%;
}
#fond {
position:relative; 
width:800px; 
left:50%; 
margin-left:-400px; 
background-image: url(images/11.gif);
}
#gauche {
position:relative; 
width:100%; 
top:0px; 
float:left; 
background: transparent url(images/5.gif) repeat-y right top;
}
#texte {
float:left;
}
#droite {
position:relative; 
width:100%; 
top:0px; 
float:left; 
background: transparent url(images/7.gif) repeat-y left top;
}


Du coups, les 2 "éléments" structurants et habillants sont séparés, ce qui est plus simple pour trouver l'origine d'un problème et donc gain de temps, et donc gain de productivité.

Bon là faut que j'aille chercher ma fille chez la nounou, au cas ou je completerai ma réponse plus tard.

++
Aymeric
Bonjour, Smiley biggrin

Merci beaucoup pour cette leçon récapitulative ! Smiley smile
En ce qui concerne les id uniques, je connais et je m'en sert autant que je peux mais il n'y a que peux de div qui soit unique, je suis donc obligé d'utiliser les class.

Merci encore,
Et bonne soirée.
FluidBlow