28172 sujets

CSS et mise en forme, CSS3

Je viens de créer un thème sur wordpress pour l'agence où je travaille et pour ma surprise, la page est complétement décalée sur IE7 !!!

http://is-agency.biz/wordpress/

si vous l'ouvrez sur IE 7 vous verrez qu'elle est décalée à droite.

Que dois je faire ?

Merci
Bonjour alesson.

Tout d'abord, je te conseille de valider ta page (par exemple, tu as des li sans ul !)

Ensuite je pense qu'il y a des problèmes d'architecture : tes div content et colonne ne devrait pas être dans la div menu....

Celà peut déjà faire avancer les choses...
alesson a écrit :
c'est bizarre, car sur Firefox et Chrome, ça marche parfaitement. peux tu m'aider
Reaction Fail !

La réponse donnée par Zulie494 me semble parfaitement pertinente. Je t'invite à l'étudier d'avantage ! Smiley smile
oui elle est bien pertinente, mais lorsque je corrige les erreurs remarquées par notre collègue , la page décale sur Firefox ! Smiley sweatdrop
Alesson,

Il faut que tu valides ton HTML, car si ça se trouve l'erreur vient tout simplement de là. il n'y a pas grand chose à corriger, c'est des choses qui te prendront 5 petites minutes !
Voici l'adresse : http://validator.w3.org/

Mets ensuite ta page à jour et nous pourrons t'aider si le problème persiste Smiley cligne
je ne comprends pas, j'ai corrigé les erreurs et maintenant toute la mise en page beug dans tous les navigateurs. je sais plus quoi faire Smiley bawling
Bonjour et bon courage. Smiley smile

alesson a écrit :
je sais plus quoi faire Smiley bawling

Alors c'est simple. Tu as écrit un code HTML faux, notamment en oubliant de refermer ton bloc div#menuh, ce qui fait que ton menu de gauche et ton contenu principal sont considérés comme faisant partie de ce bloc. Et lorsque tu as écrit ton CSS, tu l'as écrit pour une structure HTML fausse.

Si tu corriges ta structure HTML maintenant, ça va casser une partie de ta mise en page, c'est normal. La solution? Corriger la structure HTML, puis corriger ton code CSS pour tenir compte de cette structure.

Ta structure HTML est incohérente. Tu as un #footer placé avant le menu horizontal et le contenu, et un menu de gauche placé avant le menu horizontal qui pourtant est visuellement au dessus. Je ne sais pas si c'est volontaire ou si c'est le résultat d'erreurs d'imbrication de ton code HTML, mais c'est à corriger en priorité, et peu importe les résultats sur ta mise en page. Tu vas d'ailleurs pouvoir supprimer 90% du code CSS qui te sert à positionner tes éléments, et le refaire à neuf.

Une structure correcte serait celle-ci:
<div id="page">
  <div id="banniere">
    ...
  </div><!--#banniere-->
  <div id="menuh">
    ...
  </div><!--#menuh-->
  <div id="menuv">
    ...
  </div><!--#menuv-->
  <div id="contenu">
    ...
  </div><!--#contenu-->
</div><!--#page-->


Côté CSS, tu peux commencer par fixer la largeur de #page à 929px de large et pas 1200px comme actuellement (c'est idiot, tu n'as pas besoin de cette largeur excessive). Et éviter de figer la hauteur de ce conteneur: pour commencer, tu devrais essayer d'obtenir comme résultat que la hauteur s'adapte à celle du contenu, et tu verras plus tard s'il y a des raffinements à apporter (une hauteur minimale par exemple).
Bien sûr, ton image fond.png n'a aucune raison de faire 1200px de large.

En ce qui concerne le positionnement des éléments, la première chose à faire est de bloquer une demi-journée pour lire cet article et les ressources qui y sont indiquées, et faire quelques tests isolés pour bien assimiler le tout: http://www.alsacreations.com/article/lire/53-guide-de-survie-du-positionnement-css.html. (Dans l'ordre conseillé: les ressources indiquées d'abord, puis l'article lui-même.)

Ensuite, tu vas pouvoir garder dans le flux (position:static;float:none; -- pas la peine de le préciser, ce sont les valeurs par défaut) la plupart de tes éléments. La seule exception devrait être le menu de gauche, qui pourra être flottant (float:left). Pas besoin de faire flotter le contenu à droite. Tu peux t'inspirer des gabarits de mise en page proposés ici, et notamment:
- http://www.alsacreations.com/static/gabarits/modele07.html
- http://www.alsacreations.com/static/gabarits/modele08.html

Si tu veux tester ta mise en page et que tu n'as pas de contenu dans un bloc, tu peux utiliser une hauteur minimale pour ce bloc (min-height). Sauf si c'est vraiment une demande du design, il faudra supprimer cette hauteur minimale en cours de route ou à la fin, mais au pire si tu l'oublies c'est moins gênant que si tu avais figé la hauteur avec un height.

Bonne continuation.
Et si tu ne sais pas pourquoi ton rendu «bugue», tu peux inspecter le code HTML et CSS de la page avec un outil comme Firebug, et visualiser où se placent exactement les éléments, les zones couvertes par les marges ou le padding, et voir comment le navigateur analyse ton code HTML (imbrigation correcte ou non).
À découvrir d'urgence si tu n'utilises pas cet outil. Ou un équivalent tel que Web Inspector (Safari, Chrome), Dragonfly (Opera), etc.
mon code html ressemble à ça

<div id="page">
<div id="banniere">
</div><!--#banniere--><br />
<div id="menuh">
<ul> <?php wp_list_pages('sort_column=menu_order&depth=1&title_li');?>
</ul>
</div><!--menuh-->
<div id="menuv">
<ul>
<?php wp_list_categories('sort_column=menu_order&depth=1&title_li');?>

</ul>
</div><!--menuv-->

<div id="contenu">
<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post(); ?>
<div class="post">
<div class="post_content">
<?php the_content(); ?>
</div><!--#post_content-->
<?php endwhile; ?>
<?php endif; ?>
</div><!--#post-->

</div><!--#contenu-->
</div><!--#page-->



qu'en penses tu ?
C'est dû à ta taille fixe de tes li (de 111px) et que Toto ne contient que 4 lettres.
Si tu ajoutes un text-align:center; sur tes li, ça choquera déjà beaucoup moins.
merci bien. tu avais bien raison ! Smiley biggrin


J'ai une autre question, si je rajoute une image dont la taille est de 240x92 pour faire l'effet hover, est-ce que je dois changer la taille de la li ? ou a ?