28173 sujets

CSS et mise en forme, CSS3

Pages :
Bonjour à tous.
Voilà je viens de démarrer un nouveau site web PHP/CSS.
Il est visible ici : http://infotek.be/asap/
3 choses me semblent bizarres :
1) sur FF, j'ai un espace blanc entre la bannière et ma première bande grise alors que sous IE pas.
2) je ne comprend pas comment ma seconde bande grise ne vient pas se coller en dessous de mon menu ni sous FF ni sous IE
3) je vais faire un div à droite du menu pour le contenu du site.
Je voudrais donc savoir comment faire pour que le menu continue chaque fois jusque toucher la barre grise en dessous sachant que celle-ci va "bouger verticalement" en fonction du contenu de mon corps.
Je vous mets le code HTML ici :

<body>
<?
//Fichier dont on a besoin
Require("menu.php");
//On place la bannière
echo"<div id=\"Banniere\"><img src=\"Banniere.jpg\" alt=\"Bienvenue sur le site de l'A.S.A.P\" /></div>";
//On place un espace Gris
echo"<div id=\"LigneHorizontaleGrise\">&nbsp;</div>";
//On affiche le menu
menu();
//On place un espace Gris
echo"<div id=\"LigneHorizontaleGrise\">&nbsp;</div>";
?>
</body>

le menu est décrit ici :

<?
function menu()
{
echo"
<ul id=\"menu\">

	<li>&nbsp;</li>
	<li><a href=\"#\">QUI SOMMES NOUS ?</a></li>
	<li><img src=\"LigneMenu.gif\" border=\"0\" /></li>
	<li><a href=\"#\">OBJECTIFS</a></li>
	<li><img src=\"LigneMenu.gif\" border=\"0\" /></li>
	<li><a href=\"#\">MOYENS</a></li>
	<li><img src=\"LigneMenu.gif\" border=\"0\" /></li>
	<li><a href=\"#\">AGENDA</a></li>
	<li><img src=\"LigneMenu.gif\" border=\"0\" /></li>
	<li><a href=\"#\">ANNONCES</a></li>
	<li><img src=\"LigneMenu.gif\" border=\"0\" /></li>
	<li><a href=\"#\">ZONE MEMBRES</a></li>
	<li><img src=\"LigneMenu.gif\" border=\"0\" /></li>
	<li><a href=\"#\">COMMENT ADHERER</a></li>
	<li><img src=\"LigneMenu.gif\" border=\"0\" /></li>
	<li><a href=\"#\">CONTACT</a></li>
	<li>&nbsp;</li>

</ul>";
}
?>

et le CSS :

/* CSS Document */
body{background:#F5F5F5;}
/*Banniere*/
#Banniere{
position:relative;
margin-left:10px;
margin-top:0px;
padding-top:20px;
}
#LigneHorizontaleGrise{
position:relative;
padding-bottom:0px;
padding-top:0px;
margin-left:10px;
height:20px;
width:950px;
background-color:#666666;
border-top:#FFFFFF 3px solid;
border-bottom:#FFFFFF 3px solid;
}
/* MENU */ 
ul#menu {
position:relative;
margin-left: 10px;
margin-top: 0px;
padding-top: 0px;
padding-bottom:0px;
background-color:#DBDBDB;
width:200px;
}

ul#menu li{ /* tous les "li" dans "#menu"*/
list-style-type: none; /* pas de puces */
text-align:center;
}
ul#menu li a { /* les "a" des "li" dans "#menu" */
display: block;
margin: 0px; /* espace entre les menus */
width:200px;
height:10px;
background: #DBDBDB;
/* Ecriture */
font-family:Geneva, Verdana, Helvetica, sans-serif;
font-size:10px;
text-decoration:none;
font-weight:bold;
color:#333333;
}

D'avance, Merci à vous tous pour votre aide Smiley cligne
Modifié par arnaud_verlaine (09 Oct 2006 - 18:03)
Bonjour,

Pour moi, tu as un margin-bottom à mettre à 0 à ta bannière et un paddind-top et bottom également pour ta bande grise ... A vu de nez.

Pourquoi ces positions relatives ?

<edit> ce sont tes borders de 3px qui coincent pour ta ligne au tant pour moi
</edit>
Modifié par ghost (03 Oct 2006 - 21:36)
Bonjour et merci pour ta réponse.
Non si j'enlève les border de 3px, cela ne change rien pour le problème d'espace entre la bannière et la bande grise sur FF.
J'ai essayé de mettre les margin et padding à 0 mais rien n'y change.
Pour les positions relatives, je ne vois pas très bien ce que je peux mettre d'autre?
Je ne veux pas utiliser des positions absolue ici, avec le contenu dynamique et je ne veux pas utiliser des valeurs négatives.
As-tu une idée?
Merci pour ton aide Smiley cligne
Re,

Vite fait pour juste une idée :

<!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" lang="fr">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Test</title>

<style type="text/css">

body{
background:#F5F5F5;
font-family:Geneva, Verdana, Helvetica, sans-serif;

font-size:10px;

text-decoration:none;

font-weight:bold;

color:#333333;
}

/*Banniere*/

#Banniere{
margin: 0;
margin-left:10px;
margin-top:0px;
padding-top:20px;
}

#LigneHorizontaleGrise{
padding:0;
margin-left:10px;
height:20px;
width:950px;
background-color:#666666;
}

#LigneHorizontaleGrise_bas{
padding:0;
margin-left:10px;
height:20px;
width:950px;
background-color:#666666;
clear: both;
}

/* MENU */ 
#menu{
width:200px;
margin-left: 10px;
margin-top: 0px;
padding: 0px;
padding-bottom: 20px;
background-color:#DBDBDB;
}

ul#menu {
float: left;
list-style-type: none; /* pas de puces */
margin-bottom: 0;
}


ul#menu li a { /* les "a" des "li" dans "#menu" */
display: block;
margin: 0px; /* espace entre les menus */
text-align:center;
height:20px;
color: #000;
text-decoration: none;
}

</style>

</head>
<body>
<div id="Banniere"><img src="Banniere.jpg" alt="Bienvenue sur le site de l'A.S.A.P" /></div><div id="LigneHorizontaleGrise"> </div>
<ul id="menu">

	<li> </li>
	<li><a href="#">QUI SOMMES NOUS ?</a></li>

	<li><img src="LigneMenu.gif" border="0" /></li>
	<li><a href="#">OBJECTIFS</a></li>
	<li><img src="LigneMenu.gif" border="0" /></li>
	<li><a href="#">MOYENS</a></li>
	<li><img src="LigneMenu.gif" border="0" /></li>
	<li><a href="#">AGENDA</a></li>
	<li><img src="LigneMenu.gif" border="0" /></li>

	<li><a href="#">ANNONCES</a></li>
	<li><img src="LigneMenu.gif" border="0" /></li>
	<li><a href="#">ZONE MEMBRES</a></li>
	<li><img src="LigneMenu.gif" border="0" /></li>
	<li><a href="#">COMMENT ADHERER</a></li>
	<li><img src="LigneMenu.gif" border="0" /></li>
	<li><a href="#">CONTACT</a></li>

</ul>

<div id="LigneHorizontaleGrise_bas"> </div></body>
</html>



Si ça t'aide ...
Bonjour ! Merci à toi pour ton aide.
J'ai donc refait mon HTML et CSS comme tu m'as dit :
Site web
Cependant toujours quelques soucis :

1) Pourquoi les liens fonctionnent impecc sous FF et pas sous IE ? je ne vois pas du tout là !!
Son code

<ul id=\"menu\">

	<li>&nbsp;</li>
	<li><a href=\"#\">QUI SOMMES NOUS ?</a></li>
	<li><div align=center><img src=\"LigneMenu.gif\" border=\"0\" /></div></li>
	<li><a href=\"#\">OBJECTIFS</a></li>
	<li><div align=center><img src=\"LigneMenu.gif\" border=\"0\" /></div></li>
	<li><a href=\"#\">MOYENS</a></li>
	<li><div align=center><img src=\"LigneMenu.gif\" border=\"0\" /></div></li>
	<li><a href=\"#\">AGENDA</a></li>
	<li><div align=center><img src=\"LigneMenu.gif\" border=\"0\" /></div></li>
	<li><a href=\"#\">ANNONCES</a></li>
	<li><div align=center><img src=\"LigneMenu.gif\" border=\"0\" /></div></li>
	<li><a href=\"#\">ZONE MEMBRES</a></li>
	<li><div align=center><img src=\"LigneMenu.gif\" border=\"0\" /></div></li>
	<li><a href=\"#\">COMMENT ADHERER</a></li>
	<li><div align=center><img src=\"LigneMenu.gif\" border=\"0\" /></div></li>
	<li><a href=\"#\">CONTACT</a></li>

</ul>";
et son CSS :

/* MENU */ 
#menu{
width:200px;
margin-left:10px;
padding-left:0px;
margin-top: 0px;
padding: 0px;
padding-bottom: 20px;
background-color:#DBDBDB;
/* Ecriture */
font-family:Geneva, Verdana, Helvetica, sans-serif;
font-size:10px;
text-decoration:none;
font-weight:bold;
color:#333333;
list-style-type: none; /* pas de puces */
margin-bottom: 0;
}

#menu li a { /* les "a" des "li" dans "#menu" */
display:block;
margin: 0px; /* espace entre les menus */
text-align:center;
height:20px;
color: #000;
text-decoration: none;
}
#menu li a:hover { /* les "a" des "li" dans "#menu" */
background-color:#666666;
color:#ffffff;
}


2) je n'arrive pas à aligner mes textes verticalement (dans les <li> du menu) et en dessous dans mon <div>) Horizontalement, ça fonctionne impecc avec text-align mais pas verticalement. Je peux mettre vertical-align à middel, top etc , ça reste toujours la même chose.. Smiley biggol une idée ?

3) Comment faire pour disposer mes blocs ? Je pense notamment :
a) au bloc blanc du milieu : Là où je vais mettre mon texte (je l'ai positionné de manière statique verticalement avec une valeur négative - le plus simple serait de lui mettre la même coordonée verticale que le menu de gauche ! mais là je cale...

b) Quand mon corps va grandir, je voudrais que mon menu de gauche aille toujours "toucher" la barre grise en dessous - Mais comment le fair de manière dynamique sans entrer de données?

Je viens de faire des recherches et aussi la FAQ notamment pour le texte mais je tourne en rond j'ai l'impression... Smiley confus
Quelqu'un a une corde à me jeter ? Smiley lol
D'avance, Merci pour votre coup de pouce Smiley cligne
Modifié par arnaud_verlaine (04 Oct 2006 - 16:27)
Salut,

Pour le texte de menu :
#menu li a { /* les "a" des "li" dans "#menu" */
display:block;
margin: 0px; /* espace entre les menus */
text-align:center;
height:20px;
color: #000;
text-decoration: none;
}

Ajoute
 line-height: 20px;


+
re,
sur Alsacréations tu as une galerie de gabarit qui te permetra de résoudre ton probleme de bloc ainsi que ton souci pour la hauteur de ton menu.
içi
+
Bonsoir,

Ben ce soir, je n'avais pas envie de bosser ... alors voila si ça t'aide

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
			
<head> 
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
   <title></title> 
   <meta name="TITLE" content="" />
	<style type="text/css">
body{
background : #f5f5f5
}

#conteneur{
width: 950px;
background : #ccc;
margin: auto;
background-color:#DBDBDB;
overflow: hidden;
}

#banniere{
width: 950px;
height: 150px;
background : #fff;
}

#menu {
overflow: hidden;
float : left;
width:200px;
padding-left:0px;
margin-top: 0px;
padding: 0px;
padding-bottom: 20px;
background-color:#DBDBDB;
font-family:Geneva, Verdana, Helvetica, sans-serif;
font-size:10px;
text-decoration:none;
font-weight:bold;
color:#333333;
margin-bottom: 0;
}

#menu ul{
list-style-type: none; /* pas de puces */ 
margin:0;
}

#menu li a { /* les "a" des "li" dans "#menu" */
display:block;
margin: 0px; /* espace entre les menus */
text-align:center;
height:20px;
color: #000;
line-height: 20px;
text-decoration: none;
}
#menu li a:hover { /* les "a" des "li" dans "#menu" */
background-color:#666666;
color:#ffffff;
}

#corps {
width : 520px;
margin: 0;
padding: 10px;
float: left;	
background-color:#fff;
}

#droite {
width : 200px;
background-color:#DBDBDB;
overflow: hidden;

}

.barre{
height:20px;
width:950px;
background-color:#666666;
border-bottom:#FFFFFF 3px solid;
border-top:#FFFFFF 3px solid;
clear: both;
}

.spacer{
clear: both;
}
	</style>

</head>
<body>
<!-- Page -->

	<div id="conteneur">
		<div id="banniere"> Bannière</div>

		<div class="barre"></div>
			<div id="menu">
 <ul id="menu">

	<li> </li>
	<li><a href="#">QUI SOMMES NOUS ?</a></li>

	<li><div align=center><img src="LigneMenu.gif" border="0" /></div></li>
	<li><a href="#">OBJECTIFS</a></li>
	<li><div align=center><img src="LigneMenu.gif" border="0" /></div></li>
	<li><a href="#">MOYENS</a></li>
	<li><div align=center><img src="LigneMenu.gif" border="0" /></div></li>
	<li><a href="#">AGENDA</a></li>
	<li><div align=center><img src="LigneMenu.gif" border="0" /></div></li>

	<li><a href="#">ANNONCES</a></li>
	<li><div align=center><img src="LigneMenu.gif" border="0" /></div></li>
	<li><a href="#">ZONE MEMBRES</a></li>
	<li><div align=center><img src="LigneMenu.gif" border="0" /></div></li>
	<li><a href="#">COMMENT ADHERER</a></li>
	<li><div align=center><img src="LigneMenu.gif" border="0" /></div></li>
	<li><a href="#">CONTACT</a></li>

</ul>
            </div>
			<div id="corps">
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam justo est, dignissim et, pulvinar vel, imperdiet nec, ipsum. Morbi tincidunt. Nulla eu nisi et lectus condimentum elementum. Nulla malesuada magna. Vivamus sem. Quisque pulvinar. Etiam et nisl mattis mauris porttitor aliquam. Nullam ante nisi, rutrum non, pulvinar sit amet, rhoncus in, tellus. Aenean odio pede, luctus vitae, interdum non, tempor vitae, arcu. Aliquam id nulla id eros sollicitudin elementum. Duis arcu justo, feugiat non, porttitor pretium, tristique ac, ante. Praesent tempor iaculis nisi. Praesent bibendum leo quis augue. Integer nec lorem. Vivamus auctor, nunc a ornare vulputate, dui libero rutrum purus, ut feugiat neque nulla at nisi. Ut est. Aliquam semper ornare diam.

Donec sit amet neque et erat rhoncus semper. Quisque tellus lectus, dictum dignissim, malesuada id, pretium et, pede. Maecenas porta. Ut eu purus at neque varius eleifend. Nunc ullamcorper posuere magna. Etiam tincidunt aliquet elit. Curabitur tempus condimentum leo. Maecenas lorem neque, molestie eu, tempor id, consequat ut, turpis. In pellentesque dolor eu massa. Donec fermentum urna vitae diam. Proin ipsum. Fusce nec tellus. Maecenas mattis dapibus eros. Nunc aliquam. Phasellus tellus lacus, mollis sit amet, congue sed, pulvinar ac, arcu.

Vivamus tincidunt, lacus eget eleifend eleifend, pede pede eleifend nulla, a bibendum lacus orci in pede. Aenean convallis odio suscipit urna. Sed imperdiet iaculis est. Phasellus bibendum purus eget sapien. Vivamus et nibh eu magna ullamcorper pulvinar. Integer commodo dapibus neque. Vivamus tempor. Praesent non massa non dolor porttitor facilisis. Mauris id mi a elit tincidunt congue. Etiam sollicitudin, sem ut dictum ullamcorper, nunc justo venenatis est, quis blandit erat arcu quis mi. Aliquam augue dolor, tristique in, dignissim nec, euismod non, tellus. Praesent volutpat ultrices mauris.
</p>
             </div>
             <div id="droite"> droite</div>
 

             <div class="barre"></div>
		


		</div>
		

</body>
</html>



Ca devrait passer sous IE
De rien vraiment, c'est juste que je dois avoir quelques heures de plus que toi devant un écran à mon actif...
Ca je sais pas.. J'y passe déja pas mal de temps Smiley biggrin
Mais je suis pas crack du CSS, je m'occupe plus de réseaux et programmation que web finalement c'est vrai... Smiley biggol
Bonjour à tous !
Bon me revoilà Smiley biggol
J'ai toujours le même petit problème pour aligner mes <div>
J'ai mon exemple - ICI -
Je souhaiterais avoir le menu, le corps en blanc, le <div> rouge et puis le <div> gris un à côté de l'autre.
Or, je ne comprend pas le <div> rouge se mets dans le gris.;; Smiley sweatdrop
Voilà le code PHP :

<div id="Corps">
<p>Mon texte</p>
</div>
<div id="ImageDroite"></div>
<div id="MenuDroite"></div>

et leur CSS :

#Corps {
width : 440px;
margin: 0;
padding: 10px;
float: left;	
background-color:#fff;
}
#ImageDroite {
width : 150px;
background-color:red;
overflow: hidden;
}
#MenuDroite {
width : 190px;
background-color:#DBDBDB;
overflow: hidden;
}

Je ne vois pas pk les 2 <div> ne se mettent pas une à côté de l'autre tout simplement...
re,

Si tu regarde bien le code de ghost, tu as la solution. Smiley biggol
le comportement d'un element bloc (div) par defaut est de ce placer sous l'element bloc qui le precede: ce que font tes 2 blocs.
Ton menu et le div 'centre' sont cote a cote car ghost leur a donner un attribut flottant (float: left).
Tu devrait regarder les tutoriaux a ce sujet sur le site +
Salut et merci de ta précision !
Oui justement je regardais le code de ghost qui est impecc justement !!
J'ai bien vu que les éléments float: left; étaient dans le code du menu et du corps.
Je le mets donc dans ImageDroite et MenuDroite mais cela ne change rien.

#ImageDroite {

width : 150px;

background-color:red;

overflow: hidden;
float: left;

}

#MenuDroite {

width : 190px;

background-color:#DBDBDB;

overflow: hidden;

float: left;

}

Si je mets le float à right pour ImageDroite, alors elle va allez à la droite du MenuDroite mais elle reste toujours SUR le MenuDroite.
Il doit y avoir autre chose qui m'échappe ? Smiley biggol
Bonjour,

Pourquoi un div pour ton image ?

essayes :

<img src="Titre.gif" id="ImageDroite" />
<div id="MenuDroite">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Integer fringilla ipsum nec erat. Pellentesque ut turpis sit amet orci rhoncus faucibus. Suspendisse augue arcu, rhoncus consequat, vestibulum non, sodales vel, elit. Quisque velit. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum vel eros ac dui viverra tristique. In et justo in diam porta pretium.
</div>

Pour le html et :

#ImageDroite {
width : 150px;
float: left;
}

#MenuDroite {
width : 190px;
background-color:#DBDBDB;
overflow: hidden;
}

Pour ton css.

STP Aére un peu ton code, tu y verras plus clair ( et nous aussi)
Je te remercie pour ton aide !
En effet, ça fonctionne impecc sous FF (que j'utilise) mais sous IE, le texte part en bas à gauche au lieu de rester à en haut à droite !! cfr ICI
As-tu une astuce pour y parer?
Ah cet IE... Smiley biggol Smiley sweatdrop
Modifié par arnaud_verlaine (09 Oct 2006 - 08:58)
Re

Oui excuse reduit le div de ton menu droit de 3 px (ou un multiple de 3), c'est un bug connu d'IE qui rajoute de la marge sur les éléments en float ...

Bonne continuation
Merci pour l'astuce, je ne le savais pas.
Je viens de changer un peu mon code, j'ai mis l'image droite à droite dans mon corps blanc. Au niveau du placement horizontal, ça passe sans problème sous IE et sous FF, mais au niveau du placement horizontal, j'aurais souhaité que l'image se retrouve pile au dessus du corps.

Or, j'ai un décalage de quelques pixels entre l'image et le "top" du corps.
J'ai pourtant mis le CSS suivant :

#ImageDroite {

width : 150px;

float : right;

vertical-align:top;

}

J'ai essayé avec top, text-top, mais rien ne change...
Idem pour le titre du menu droite (mais là par contre sous IE il passe bien) mais sous FF, il a le même décalage que l'image de droite.. Ca doit avoir un rapport je présume...
De plus, le texte défilant ne fonctionne que sous IE apparemment..
voir ici : ICI
Avez-vous une idée?
D'avance, encore un tout grand merci Smiley smile Smiley sweatdrop
Modifié par arnaud_verlaine (09 Oct 2006 - 12:06)
Pages :