28173 sujets

CSS et mise en forme, CSS3

Bonjour,
Je dois réaliser un site pour une galerie, seulement le design me pose un léger problème.

Le site ce compose d'un fond en dégradé fixe de 600px de haut, seulement lorsque le contenu dépasse cette hauteur une couleur de fond doit se mettre à la suite.
Et c'est la que je bloque...j'ai cherché sur le forum et le site mais rien de ce que j'ai pu trouver n'a résolu mon problème.

Merci d'avance.

Voila un screenshot du site :

upload/5987-accueil.jpg

Et un avec le résultat de ce que j'ai fais :

upload/5987-accueilbug.jpg

Comme vous voyez le fond gris clair que je devrai avoir ne s'agrandit pas lorsque le texte dépasse le degradé.

Et mon code :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Galerie Gastou : Accueil</title>
<link href="css/text.css" rel="stylesheet" type="text/css" />
<link href="css/layout.css" rel="stylesheet" type="text/css" />
<!--[if IE]>
<script defer type="text/javascript" src="pngfix.js"></script>
<![endif]-->

</head>
<body>
<div id="all">
<div id="header"></div>
<div id="logo"></div>
<div id="bloc1">
  <div id="titre"><img src="img/actualite.png" width="101" height="16" /></div>
<div id="text_actu"> <span class="Georgia16_white">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis ligula lorem, consequat eget, tristique nec, auctor quis, purus. Vivamus ut sem. Fusce aliquam nunc vitae purus. Aenean viverra malesuada libero. Fusce ac quam. Donec neque. Nunc venenatis enim nec quam. Cras faucibus, justo vel accumsan aliquam, tellus dui fringilla quam, in condimentum augue lorem non tellus. Pellentesque id arcu non sem placerat iaculis. Curabitur posuere, pede vitae lacinia accumsan, enim nibh elementum orci, ut volutpat eros sapien nec sapien. Suspendisse neque arcu, ultrices commodo, pellentesque sit amet, ultricies ut, ipsum. Mauris et eros eget erat dapibus mollis. Mauris laoreet posuere odio. Nam ipsum ligula, ullamcorper eu, fringilla at, lacinia ut, augue. Nullam nunc.consequat eget, tristique nec, auctor quis, purus. Vivamus ut sem. Fusce aliquam nunc vitae purus. Aenean viverra malesuada libero. Fusce ac quam. Donec neque. Nunc venenatis enim nec quam. Cras faucibus, justo vel accumsan aliquam, tellus dui fringilla quam, in condimentum augue lorem non tellus. Pellentesque id arcu non sem placerat iaculis. Curabitur posuere, pede vitae lacinia accumsan, enim nibh elementum orci, ut volutpat eros sapien nec sapien. Suspendisse neque arcu, ultrices commodo, pellentesque sit amet, ultricies ut, ipsum. Mauris et eros eget erat dapibus mollis. Mauris laoreet posuere odio. Nam ipsum ligula, ullamcorper eu, fringilla at, lacinia ut, augue. Nullam nunc.</span></div></div>

<div id="bloc2">
  <div id="titre2"><img src="img/dernieres_acquisitions.png" width="116" height="34" /></div>
  <div id="mini_img"><img src="img/carre_rouge.gif" width="81" height="81" hspace="0" vspace="5" /></div>
<div id="txt_acquisition"><span class="titre_obj_accueil">Victor Courtray</span><br />
        <span class="sstitre_obj_accueil">Paire de cr&eacute;dances</span><br />
        <span class="texte_obj_accueil">Votre texte aura la m&ecirc;me pr&eacute;sentation <br />
        que celui-ci. </span></div>
        <br />
<div id="texte_obj_accueil_voir"><span class="Georgia10_white">&gt; voir toutes les derni&egrave;res acquisitions&hellip;</span></div>
</div>
</div>
<div class="texte_obj_accueil" id="footer">
  <div align="center">La Galerie | Mobilier | Actualités | Expositions | Newsletter | Recherche | Contact</div>
</div>
</body>
</html>


/* CSS Document */

body { 
font-family:Georgia, "Times New Roman", Times, serif; 
font-size:13px; 
background-color:#808080;
margin: 0;
padding:0;
}

html	{
height: 100%;
}

#all {
	position:relative;
	margin: 0 auto 0 auto;
	background-image: url('../img/degrade.png');
	background-color: #CCCCCC;
	width: 955px;
	height:auto;
	min-height:600px;
	background-repeat: repeat-x;
}


#footer {
	position:relative;
	clear:both;
	margin:0 auto 0 auto;
	width:955px;
	height:25px;
}

/*header*/

#header {
	position:relative;
	top:28px;
	width:955px;
	height:74px;
	background-image:url(../img/header.png);
	background-repeat:no-repeat;
}

#logo  {
position:absolute;
left:0px;
background-image: url(../img/crane.png);
width:424px;
height:248px;
top:0px;
}

/*page accueil*/

#titre {
	position:relative; 
	border-bottom:solid 5px #8c1e8b;
	padding-top:15px;
	width:418px;
	height:18px;
	z-index:2;
}

#bloc1 {
	position:relative;
	float:left;
	left:140px;
	top:115px;
	width:370px;
}

#text_actu {
	position:relative;
	left:55px;
	width: 310px;
	top:15px;
}

#titre2 {
	position:relative;
	border-bottom:solid 5px #8c1e8b;
	padding-top:10px;
	width:210px;
	height:35px;
	z-index:2;
}

#bloc2 {
	position:relative;
	float:right;
	top:105px;
	right:115px;
	width:217px;
	height:100%;
	z-index:2;
}

#txt_acquisition {
	float:right;
	height:92px;
	width:115px;
	margin-top:10px;
	}
	
#mini_img {
	float:left;
	height:88px;
	width:92px;
	border:2px solid #4a3e3c;
	text-align:center;
	margin-bottom:5px;
	top:10px
}

#texte_obj_accueil_voir {
position:relative;
clear:both;
width: 200px;
top:10px;
}

Modifié par Mayoka (27 Apr 2007 - 14:47)
Salut,

Si je ne dis pas de bétises, il faut que tu déclare la couleur avant l'image de fond pour que ca marche :
background: #fff url(image.jpeg) no-repeat top left ;

ou
background-color: #fff;
background-image url(image.jpeg); 

si tu prefère.

Or dans ton code tu fais l'inverse :
	background-image: url('../img/degrade.png');
	background-color: #CCCCCC;

Modifié par Mikachu (27 Apr 2007 - 12:03)
Je viens d'essayer mais ça ne change rien.
J'ai essayer pas mal d'inversement dans ce genre mais à chaque fois rien ne changeait Smiley decu
Bonjour,

Tu as :
- un background-color sur body ;
- un background-color sur div#all ;
- un background-image sur div#all.

Penses à bien gérer ça conjointement.


Sinon : pour t'aider si ça coince, l'idéal serait une page de test en ligne permettant de visualiser le problème et de tester des solutions à la volée. Pas de page de test en ligne, pas de chocolat.
Voila le lien de test : http://photoconcert.free.fr/gastou/accueil.html

Pour le background-color du body c'est la couleur de fond total.
Pour l'autre c'est celui qui devrai s'afficher après le dégradé c'est pas la même couleur.

J'ai essayé en mettant le tout dans un conteneur à part mais ça n'a rien changé.
J'ai aussi essayé en faisant un système de double div all. La ça fonctionnait, mais dès que je rajoute mes div en float left et right le problème revient, or tout le site sera avec 2 voir trois colonnes dans ce style.

Si ca peut aider voila le code que j'avais fait et qui fonctionnait avant que je rajoute mes div :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

	<title>untitled</title>
	<style type="text/css">
body {
	margin: 0;
	padding:0;
	background-color:#808080;
}
#main {
	position:relative;
	margin: 0 auto 0 auto;
	background-image: url('applat_general.jpg');
	width: 955px;
	height:600px;
	background-repeat:no-repeat;
}

#smain {
	background-image: url('applat_general.jpg');
	width: 955px;
	height:auto;
	background-color:#bdbec0;
	background-repeat:no-repeat;
}

#content {
	position:relative;
	width:150px;
	height:auto;
}

#footer {
	position:relative;
	clear:both;
	margin:0 auto 0 auto;
	width:955px;
	height:25px;
}
</style>

</head>

<body>
	<div id="main">
<div id="smain">
	<div id="content">
fjdlkjfldsj fldksfjdlkjfldsjfldksfjdlkjfldsj ldksfjdlkjfldsjfldksfjdlkjfldsjf ldksfjdlkjfldsjfldksfjd kjfldsjfldksfjdlkjfldsjfldksfjdlkjf 	fjdlkjfldsj ldksfjdlkjfldsjfldksfjd kjfldsjfldksfjdlkjfldsjfldksfjdlkjf fjdlkjfldsj 
</div></div><div id="footer">Accueil - Accueil - Accueil - Accueil - Accueil - Accueil - Accueil - Accueil - Accueil - Accueil - Accueil - </div></div>

</body>
</html>
C'est juste un problème de dépassement de flottant. Un
#all { overflow:auto; }
devrait résoudre le problème.


EDIT: Un peu de lecture pour en savoir plus à ce sujet.
Modifié par <nicolas> (27 Apr 2007 - 12:33)
Ah yes merci Smiley smile
Faut juste penser avec cette solution à ne pas mettre des top aux div mais des padding-top parce que sinon ça me rajoute des scrolls à ma div all. Smiley lol