28173 sujets

CSS et mise en forme, CSS3

Pages :
Bonsoir à tous , je suis en train de mettre en page le site d'un amis à l'aide du CSS, donc je voulais savoir si la méthode que j'utilise est correcte.
J'ai mis un contour sur chaque image afin de bien les distinguer.
http://rockt.free.fr/neko.jpg

Voici mon code HTML:

<body>
<div id="bg">

  <div id="header"> </div>

  <div id="gauche_menu"> </div>
  <div id="menu_acceuil"></div>
  <div id="menu_news"> </div>
  <div id="menu_travaux"> </div>
  <div id="menu_projet"> </div>
  <div id="menu_3615"> </div>
  <div id="menu_boutique"> </div>
  <div id="menu_contact"> </div>
  <div id="menu_lien"> </div>
  <div id="droite_menu"> </div> 
  <div id="titre_section"> </div>
  <div id="contenu_haut"> </div>
  <div id="contenu_centre"> </div>


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


Et voici ma feuille de style CSS :

body { 
   background-color:#999999; /*Couleur de fond de la page Web*/ 
   text-align:center;
   font-family:Verdana, Arial, Helvetica, sans-serif; /*Polices d’écriture*/ 
   font-size:11px; /*Taille d’écriture*/ 
   padding:0; /*Pour que la page n’ai aucune marge*/ 
   margin:0; /*Pour que la page n’ai aucune marge*/ 
   } 
div
{
border:solid 1px red ;
}

div#bg
{
	width:867px;
	height:100%;
	background-color:#000000;
	

}

div#header 
{ 
   background-image:url("img/header.jpg"); 
   width:865px; 
   height:132px; 
   position:relative;
} 
div#gauche_menu
{
	background-image:url("img/gauche_menu.jpg"); 
	width:41px;
	height:23px;
	position:relative;
	float:left;

}
div#menu_acceuil
{
	background-image:url("img/Accueil.jpg"); 
	width:133px;
	height:23px;
	position:relative;
	float:left;
}
div#menu_news
{
	background-image:url("img/menu_news.jpg"); 
	width:42px;
	height:23px;
	position:relative;
	float:left;
}
div#menu_travaux
{
	background-image:url("img/menu_travaux.jpg"); 
	width:55px;
	height:23px;
	position:relative;
	float:left;
}
div#menu_projet
{
	background-image:url("img/menu_projet.jpg"); 
	width:50px;
	height:23px;
	position:relative;
	float:left;
}
div#menu_3615
{
	background-image:url("img/menu_3615.jpg"); 
	width:71px;
	height:23px;
	position:relative;
	float:left;
}
div#menu_boutique
{
	background-image:url("img/menu_boutique.jpg"); 
	width:61px;
	height:23px;
	position:relative;
	float:left;
}
div#menu_contact
{
	background-image:url("img/menu_contact.jpg"); 
	width:59px;
	height:23px;
	position:relative;
	float:left;
}
div#menu_lien
{
	background-image:url("img/menu_lien.jpg"); 
	width:57px;
	height:23px;
	position:relative;
	float:left;
}
div#droite_menu
{
	background-image:url("img/droite_menu.jpg"); 
	width:296px;
	height:23px;
	position:relative;
	float:left;
}
div#contenu_haut
{
	background-image:url("img/contenu_haut.jpg") ; 
	padding:0;
	top:0px;
	border:2px solid red;
	width:865px;
	height:91px;
	position:relative;
	clear:both;
}
div#contenu_centre 
{
	background-image:url("img/contenu_centre.jpg")  ; 

	height:419px;
	position:relative;
	clear:both;
}
div#titre_section
{
	background-image:url("img/TitreSection_Accueil.jpg"); 
	width:865px;
	height:60px;
	position:relative;
	clear:both;
}

div#footer 
{
	background-image:url("img/footer.jpg"); 
	width:865px;
	height:57px;
	position:relative;
	clear:both;
}

Mon soucis , c'est que sur chaque image du menu, correspondant a une rubrique il faut que je puisse mettre le lien qui va bien derriere...
Le code suivant ne marche pas car il faut mettre un texte qui recevra le lien , or dans mon cas c'est limage elle même qui recois le lien..

<div id="menu_news"> 
<a href = #></a>
</div>


Et enfin une derniere question, pour chaque page , l'image juste en dessous du menu horizontal doit changer en fonction de la rubrique...mais comme cette image est définie dans la feuille de style..je ne sais pas comment faire...
Voila j'espère avoir été clair et je vous remercie de votre aide.
Bonne soirée Smiley smile
Modifié par rockt13fr (08 May 2007 - 22:24)
Salut,

peut-etre que tu ne devrais pas mettre les images en background dans ce cas là.
en effet tes menus sont des images signifiantes.

dans le cas d'images signifiantes j'ai lu plusieurs fois....heu Smiley rolleyes quelquepart dans le coin qu'il fallait qu'on utilise des balises <img>

donc <a href="machintruc" ><img src="......." alt="......." /></a>

car ainsi tu profites du champ alt trés important ici pour l'accessibilité de tes menus pour les gens utilisant un navigateur textuel.

edit: accesoirement je vois que c'est un site full graphique. attention au poids de la page dans ce cas.

pascal
Modifié par CPascal (09 May 2007 - 00:05)
Bonsoir,

Je dirai que trop de div tue les div. Pour ton menu, il existe de meilleure structure html qu'un div par rubrique.

Une liste non ordonnée de type UL avec ses LI par exemple.

Comme le dit CPascal, tes images de menus ne sont pas illustratives mais informatives et comme de plus elles participent à la navigation, il te faut donc les déclarer dans le code html et non dans les css. Tu pourras ainsi leur adjoindre l'attribut "alt" indispensable à un menu accessible à tous types d'utilisateurs.

Dans les tutoriaux d'Alsacreations tu trouveras des exemples de menu en images construits sur la base d'une liste.

Et effectivement, beaucoup d'images dans ton design... ça se sentira au chargement.

Bon courage
Philos a écrit :

Une liste non ordonnée de type UL avec ses LI par exemple.

Comme le dit CPascal, tes images de menus ne sont pas illustratives mais informatives et comme de plus elles participent à la navigation, il te faut donc les déclarer dans le code html et non dans les css. Tu pourras ainsi leur adjoindre l'attribut "alt" indispensable à un menu accessible à tous types d'utilisateurs.


Mon Dieu... parfois, cela fait du bien de lire les forums, finalement.

Il y a encore 6 mois, on rêvait de lire un message de réponse comme celui-là sur alsa. Résumant... les choses simples, mêmes évidentes, mais généralement ignorées des utilisateurs répondant sur le forum.

ça se décante, ça se décante... Smiley ravi
Oh Smiley smile

Je défends ces règles élémentaires et le droit à l'accessibilité pour tout le monde depuis que mes premières lectures d'Alsacréations m'ont amené à repenser les concepts d'intégration de pages web que j'enseignais alors (et toujours) en différents centres et écôles de formation multimédia.

Aujourd'hui, quand je cite mes références à mes étudiants, les deux sites qui me viennent à l'esprit sont Alsacréations, pour tout ce que Raphaël a apporté à ce domaine et Openweb.eu.org pour la qualité de ses dossiers.

Et vos deux noms, à toi Laurent et à Raphaël, sont ceux que je mets en avant pour encourager les jeunes créatifs graphistes ou techniciens à prendre comme exemple dans la réflexion et l'approche de la création d'un site, tant techniquement que conceptuellement.

Vala, c'est totalement hors-sujet (j'en suis désolé), mais ça me fait bien plaisir d'en profiter pour vous saluer bien bas !
Bonsoir, merci de vos réponses.
Je n'ai pas utilisé de liste non ordonnées car les images de mon menu n'ont pas la même largeur..
Cependant, il est vrais que j'ai tout mis en background de mes DIV, en m'aidant du livre CSS22 : design du web aux editions EYROLES qui justement préconisé une manière semblable pour bien séparer la partie esthétique de la partie code.
Donc si je veut utiliser la méthode de pascal

a écrit :
<a href="machintruc" ><img src="......." alt="......." /></a>
il
faut que je mette mon a href dans le div correspondant pour que la taille corresponde pile poile ?et cela pour chaque "bouton" du menu ?
Merci bye
Salut,

oui, enfin moi c'est bien ce que j'imaginais. mais pour la taille je ne suis pas sur que ça va s'ajuster sans quelque indications de CSS.

les ul et li mystere. je suis moi même pas convaincu a l'essai mais je connais pas la théorie sous-jacente.

pascal.
Merci CPASCAL , j'ai utilisé ce que tu ma conseillé pour les menus à savoir :


 <div id="menu_acceuil"><a href="index.php?p=Accueil" ><img src="img/Accueil.jpg"border="0" align="top" /></a></div>
  <div id="menu_news"> <a href="index.php?p=news" ><img src="img/menu_news.jpg" border="0" align="top" /></a></div>
  <div id="menu_travaux"><a href="index.php?p=Travaux" ><img src="img/menu_travaux.jpg" border="0" align="top" /></a></div>
  <div id="menu_projet"> <a href="index.php?p=Projets" ><img src="img/menu_projet.jpg" border="0" align="top" /></a></div>
  <div id="menu_3615"><a href="index.php?p=3615Neko" ><img src="img/menu_3615.jpg" border="0" align="top" /></a></div> 
  <div id="menu_boutique"> <a href="index.php?p=Boutique" ><img src="img/menu_boutique.jpg" border="0" align="top" /></a></div>
  <div id="menu_contact"><a href="index.php?p=Contacts" ><img src="img/menu_contact.jpg" border="0" align="top" /></a> </div>
  <div id="menu_lien"><a href="index.php?p=Liens" ><img src="img/menu_lien.jpg" border="0" align="top" /></a> </div>


Voila ca marche impécable Smiley smile
je vous tiens au courant de l'évolution..
bye bye
Ce que tu as fait là est un mélange de positionnement en css (le top du top) et de sémantique html d'avant-guerre (le pire du pire).

Pourquoi tous ces div quand une simple liste UL suffirait à obtenir le même rendu visuel (avec un peu plus de finesse en Css c'est vrai) et une qualité de code, d'accessibilité, de modification très largement supérieure ?

Ce que tu as fait, c'est un tableau en div... autant monter en tableau alors, tu auras les mêmes carences et bien moins de soucis.

Ici, tu écrivais :
a écrit :
je suis en train de mettre en page le site d'un amis à l'aide du CSS, donc je voulais savoir si la méthode que j'utilise est correcte.
Ma réponse est non... sans appel Smiley smile

Tu pourrais quand même essayer quelque chose comme ça, en virant tous tes div bien evidemment :

<ul id="menu">
<li><a href="page.htm"><img src="monimage.gif" width="largeur" height="hauteur" alt="Visiter le forum" title="Visiter le forum" /></li>
</ul>


Et tu créés autant de LI que d'images de menu. Ensuite, il faut définir encore beaucoup de chose en Css (margin, padding, display, virer les puces, etc.)

Le forum regorge de tuto pour t'accompagner Smiley smile et il faut savoir que faire du Css ce n'est pas juste un exercice technique, c'est aussi un changement de réflexion et d'approche de l'intégration, c'est rendre à tous les internautes le moyen de consulter une page dans de bonnes conditions. Ce qui n'est pas le cas de la tienne pour le moment.

Quoi qu'il en soit, bonne poursuite, et si tu veux faire des Css, fais le pour à fond, c'est peu évident au départ, mais tellement gratifiant ensuite Smiley smile
Modifié par Philos (09 May 2007 - 22:29)
Merci de tes conseils maintenant les propriétés css pour toute la mise en page de mon menu se résume à :

#menu li
{
float:left;
padding:0;
margin:0;
}
#menu
{
margin-top:0px;
margin-bottom:0px;
}


et le code de ma page html à:

  <ul id="menu">
  <li><a href="index.php?p=Accueil"><img src="img/Accueil.jpg" width="133px" height="23px" alt="Visiter le forum"  border="0" align="top"  /></li>
  <li><a href="index.php?p=news"><img src="img/menu_news.jpg" width="42px" height="23px" alt="Visiter le forum"  border="0" align="top" /></li>
  <li><a href="index.php?p=Travaux"><img src="img/menu_travaux.jpg" width="55px" height="23px" alt="Visiter le forum"  border="0" align="top" /></li>
  <li><a href="index.php?p=Projets"><img src="img/menu_projet.jpg" width="50px" height="23px" alt="Visiter le forum"  border="0" align="top" /></li>
  <li><a href="index.php?p=3615Neko"><img src="img/menu_3615.jpg" width="71px" height="23px" alt="Visiter le forum"  border="0" align="top" /></li>
  <li><a href="index.php?p=Boutique"><img src="img/menu_boutique.jpg" width="61px" height="23px" alt="Visiter le forum"  border="0" align="top" /></li>
  <li><a href="index.php?p=Contacts"><img src="img/menu_contact.jpg" width="59px" height="23px" alt="Visiter le forum"  border="0" align="top" /></li>
  <li><a href="index.php?p=Liens"><img src="img/menu_lien.jpg" width="57px" height="23px" alt="Visiter le forum"  border="0" align="top" /></li>
   <li><img src="img/droite_menu.jpg" width="296px;" height="23px"  border="0" align="top" /></li>
  </ul>


et le résultat est tout aussi bien Smiley smile
Modifié par rockt13fr (09 May 2007 - 22:48)
Ajoute un petit list-style-type:none sur le li, sinon tu risques d'avoir des puces (ul = liste à puces) qui apparaîtront.

Et pour ta déclaration de margin sur le #menu, margin:0; remplacera plus légèrement le top et le bottom. Et je supprimerai les border="0" du html pour le passer en css.

ul#menu {
margin:0;
padding:0;
}
#menu li {
float:left;
list-style-type:none;
margin:0;
padding:0;
}
#menu img {
border:0;
}

Sinon, si tu es satisfait et que mes explications t'ont aidé, je ne peux que t'encourager à poursuivre dans cette voie Smiley smile

EDIT : je n'avais pas vu le align="top" dans le html. Cet attribut ne te sert à rien, tu peux aussi le retirer (pour info, alignement vertival c'est valign="top") mais là je n'en vois pas l'intérêt pour ton menu.
Modifié par Philos (09 May 2007 - 23:05)
Voila je viens de faire les modifs que tu m'as conseillé, par contre j'ai rajouter align="top" sous dreamweaver , car si je le met pas une barre horizontalle noir apparait sous mon menu, et sur toute la largeur du design... et je ne comprend pas pourquoi car je n'ai aucune margin ni padding...
Tu as un arrière plan noir sur le body ou quelque part, qui pourrait apparaître ici ?

Une première tentative de correction serait de définir une hauteur sur le ul#menu, égale à la hauteur des images du menu. On peut aussi essayer de cerner de quel élément est issu le noir. Défini un background-color:green sur le ul#menu pour voir si le noir passe au vert.

As tu mis ton UL dans un div ? Ce n'est pas indispensable mais si c'est le cas, défini un background-color:blue sur ce div... le but étant d'isoler l'élément à traiter. Ce filet noir finira par changer de couleur.

Mais là je dis ça un peu à l'aveuglette... si tu pouvais poster un capture d'écran du rendu dans le navigateur. D'ailleurs, en parlant de navigateur, ce filet noir est-il présent sous Firefox et IE ?
Modifié par Philos (09 May 2007 - 23:40)
salut,

bon a priori le top dois t'eviter de te centrer au milieu d'un element. ce qui laisserai supposer que ton menu es dans une boite un peu plus grande que prevu.

j'ai vu dans ton premier post tu avais defini plein de height en pixel. et que tu avais rajouter les cadres rouges. peut-etre que tu as oublié de rajouter cette epaisseur de border.

que ce soit ça ou pas je te conseille l'utilisation de l'add web developer avec firefox. il y a des options pour rajouter des cadres rouges autour des block sans qu'il soit nécessaire de retoucher au code.

pascal
Bonjour à tous
a écrit :

Tu as un arrière plan noir sur le body ou quelque part, qui pourrait apparaître ici ?


Oui j'ai mis un grand bloc centré au milieu de la page , de fond noir pour bien que je le vois et j'ai mis en place tout le design a l'intérieur !

Je vais faire screen avec la barre noir ( sans l'option :align:top )


EDIT : voila le pb : http://rockt.Free.fr/neko2.JPG
Je viens de tester en changer la couleur de fond de ma grande div qui englobe tout , cette petite barre noire change et prend la couleur attribué a la div , j'en déduit que le problème doit venir d'une taille d'un bloc..
Modifié par rockt13fr (10 May 2007 - 10:50)
Une hauteur de div, ou un jeu de margin ou de padding.

Là, pour t'aider, faudrait le code html et css de la partie supérieure de ta page.
Bonjour tout le monde , voici le site enfin fini et en ligne.

http://nekobarbare.free.fr le Soucis cest qu'il y a des bugs en effet sur IE7 , il sort niquel alors que sur firefox il sort avec plein de décalage, ( pourtant j'ai mis le * { margin:0; padding:0} )
Et sur IE6 il y a des bugs d'affichage aussi...

En attendant vos conseils d'experts , je vous souhaite de joyeuses fêtes de noel.
Salut,

Essaye dans un premier temps de corriger les erreurs à la validation du code html (tu dois avoir des <div> de trop)

Ensuite pour centrer ton site, un petit margin; 0 auto sur le block bg (sur ie, il est centré car le navigateur est passé en mode Quirk, surement à cause d'un bloc mal fermé et le text-align: center sur body fait son effet!)

Pour que ton bloc bg "suive" sont contenant placé en float, un overflow: auto de vrai le faire... mais t'imposera surement quelques retouches utiles...

En résumer et pour comprendre ce que tu fais, il faudrait relire (lire?) les tutos et la faq...

Smiley cligne Bon courage
Salut ghost , je viens de passer par validator.w3c.org et effectivement j'ai 11 erreurs graves et plein de warningd donc dans un premier temps je vais essayer de corriger cela.
Puis je suivrai tes autres conseils Smiley cligne

En tout cas Merci de ton aide
Pages :