Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2480 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Problème de CSS

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de CSS

n°1860368
darkgloom
Posté le 11-03-2009 à 15:21:48  profilanswer
 

Bonjour,
 
Je vous expose mon problème, je suis en train de réaliser un site web et j'ai un petit souci au niveau du CSS.
J'ai un design centré de largeur fixe, composé de 2 blocs (la bannière/menu et le contenu) et je voudrais que le contenu occupe au moins la place restante.
Question, comment faire ?
 
Voici mon CSS existant :
 

Code :
  1. body {
  2. position : absolute ;
  3. margin-left : -350px ;
  4. left : 50% ;
  5. height : 100% ;
  6. margin-top: 0px;
  7. margin-bottom : 0px ;
  8. }
  9. .haut {
  10. height : 150px;
  11. width : 700px ;
  12. }
  13. .contenu  {
  14. min-height : 600px ;
  15. top : 150px;
  16. width: 680px;
  17. }


 
Merci d'avance

mood
Publicité
Posté le 11-03-2009 à 15:21:48  profilanswer
 

n°1860394
macgawel
Posté le 11-03-2009 à 16:46:17  profilanswer
 

Si je comprends bien tu as ça

|-------------------------|
|     | Ma bannière |     |
|     |-------------|     |
|     | Mon contenu |     |
|     |-------------|     |
|                         |
|-------------------------|
   

Et tu voudrais

|-------------------------|
|     | Ma bannière |     |
|     |-------------|     |
|     | Mon contenu |     |
|     |             |     |
|     |             |     |
|-------------------------|
   

On triche un peu :
En fait, le contenu va faire toute la page, mais comme on le met en-dessous du haut ça ne se verra pas.

Code :
  1. #contenu{
  2.     position:absolute; /* On veut le placer précisément */
  3.     top:0;
  4.     bottom:0;
  5.     z-index:3; /* Le z-index sert à le mettre "en dessous" du haut */
  6.     width:700px;
  7.     padding-top:150px; /* On laisse la hauteur du haut avant de commencer à écrire */
  8. }
  9. #haut{
  10.     position:absolute;
  11.     top:0;
  12.     height: 150px;
  13.     width:700px;
  14.     z-index:5;
  15. }

n°1860397
tpierron
Posté le 11-03-2009 à 16:49:49  profilanswer
 

Tu pourrais utiliser la propriété min-height: 100%, de cette manière :

Code :
  1. <html>
  2. <head>
  3. <style type="text/css">
  4. body {
  5. height: 100%;
  6. margin: 0;
  7. padding: 0;
  8. background-color: yellow;
  9. margin-left: 50%;
  10. height: 100% ;
  11. }
  12. .haut {
  13. height: 150px;
  14. width: 700px;
  15. margin-left: -350px;
  16. background-color: red;
  17. position: relative;
  18. z-index: 1;
  19. }
  20. .contenu {
  21. min-height: 100%;
  22. margin-top: -150px;
  23. margin-left: -350px;
  24. width: 700px;
  25. background-color: blue;
  26. }
  27. #padding {
  28. padding-top: 150px;
  29. }
  30. </style>
  31. </head>
  32. <body>
  33. <div class="haut">Haut<br><input type="button" value="Ajouter contenu" onclick="document.getElementById('padding').innerHTML +=
  34. document.getElementById('padding').innerHTML"></div>
  35. <div class="contenu"><div id="padding">Contenu<br>Contenu<br>Contenu<br>Contenu<br>Contenu<br>Contenu<br>
  36. Contenu<br>Contenu<br>Contenu<br>Contenu<br></div></div>
  37. </body>
  38. </html>


Mais évidemment ça ne fonctionne pas sous IE. Pour cette bouse, il doit y avoir moyen de simuler le min-height à coup de javascript direcement dans la CSS (extension propre à IE).


Message édité par tpierron le 11-03-2009 à 16:51:27
n°1860411
darkgloom
Posté le 11-03-2009 à 16:57:57  profilanswer
 

Ça marche niquel, merci :)
 
Par contre j'ai un petit souci, j'ai un background en dégradé qui se raccorde la bannière.
 
Est-il possible de faire commencer ce background une fois qu'on passe au dessus de la bannière ?
 
Sinon je peux toujours rajouter 150px en haut mais si jamais il y a une solution :)
 
Merci encore
 
 
edit : En effet je n'avais pas pensé à ta solution non plus tpieron, mais bon la première à l'avantage de fonctionner sur le merveilleux IE =D


Message édité par darkgloom le 11-03-2009 à 17:00:04
n°1860464
tpierron
Posté le 11-03-2009 à 18:23:20  profilanswer
 

Pour la première solution, fait attention à l'overflow. Si ça déborde, le div contenant ne sera pas étendu. D'un autre coté, si tu es sûr ça ne débordera pas, c'est effectivement largement plus garantie de fonctionner partout.
 
Edit: j'avais cru comprendre que tu voulais qu'initialement la page occupe toute la hauteur du navigateur, puis que la hauteur s'adapte si jamais il y a davantage de texte.


Message édité par tpierron le 11-03-2009 à 18:24:50
n°1860467
darkgloom
Posté le 11-03-2009 à 18:36:43  profilanswer
 

Ah oui en effet le div ne s'étend pas..
 
Il y a un moyen de simuler une continuité ?
Je ne suis pas sur que ça ne déborde pas, et c'est même le contraire en fait, je suis sur que ça débordera.

n°1860472
tpierron
Posté le 11-03-2009 à 18:51:21  profilanswer
 

Edit: décidément, c'est pas mon jour. j'ai parlé trop vite, ça ne fonctionne qu'en mode "quirks". Pas terrible.
 
Ah, ha, je pensais que ça allait être plus long que ça, mais finalement premier lien dans google pour la recherche "min-height ie", semble avoir trouvé le "hack" adéquat :
 
http://www.dustindiaz.com/min-height-fast-hack/
 
Avec la CSS de mon exemple modifiée, ça fonctionner sur IE7/FF/Safari/... (pas testé avec IE6, mais l'auteur semble dire que ça fonctionne aussi):

Code :
  1. body {
  2. height: 100%;
  3. margin: 0;
  4. padding: 0;
  5. background-color: yellow;
  6. margin-left: 50%;
  7. height: 100% ;
  8. }
  9. .haut {
  10. height: 150px;
  11. width: 700px;
  12. margin-left: -350px;
  13. background-color: red;
  14. position: relative;
  15. z-index: 1;
  16. }
  17. .contenu {
  18. min-height: 100%;
  19. height: auto !important;
  20. height: 100%;
  21. margin-top: -150px;
  22. margin-left: -350px;
  23. width: 700px;
  24. background-color: blue;
  25. }
  26. #padding {
  27. padding-top: 150px;
  28. }


Message édité par tpierron le 11-03-2009 à 18:55:07
n°1860477
darkgloom
Posté le 11-03-2009 à 19:03:18  profilanswer
 

Voila ce que j'obtiens :
 
http://avalanchedimages.free.fr/test
 
Si on ne met pas de contenu dans la div contenu, elle n'apparait pas.

Message cité 1 fois
Message édité par darkgloom le 11-03-2009 à 19:06:48
n°1860480
tpierron
Posté le 11-03-2009 à 19:11:11  profilanswer
 

darkgloom a écrit :

Voila ce que j'obtiens :
 
http://avalanchedimages.free.fr/
 
Si on ne met pas de contenu dans la div contenu, elle n'apparait pas.


Ouais, normal, il te manque le div#padding.
 
Tiens, spécial sans rapport. Je viens encore de tomber sur un joli bug de IE en testant mon exemple. Si on prends mon exemple tel quel et qu'on l'affiche dans IE, pouf, le <input type="button"> n'est pas affiché.
 
Pourquoi ? Apparement la règle "margin-left: -350px" sur le div.haut est aussi appliquée sur la balise "input". Si on ajoute un bloc à la suite différent de input, il n'est pas décalé.  [:opus dei] Haha, qu'est ce qu'on s'amuse avec IE.


Message édité par tpierron le 11-03-2009 à 19:12:31
n°1860481
darkgloom
Posté le 11-03-2009 à 19:16:43  profilanswer
 

Ah moi il s'affiche tiens, j'ai la version 8 c'est surement pour ça.
 
Par contre j'ai bien mis le div#padding, et le bloc contenu ne prend pas toute la place.

mood
Publicité
Posté le 11-03-2009 à 19:16:43  profilanswer
 

n°1860558
darkgloom
Posté le 11-03-2009 à 23:05:00  profilanswer
 

edit : cétoké


Message édité par darkgloom le 11-03-2009 à 23:20:25

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Problème de CSS

 

Sujets relatifs
[Résolu] Problème de CSS sur un tri ajax d'un tableauCSS problème de roll over en couleur ....
Problème placement de boite en CSS[CSS] Probleme centrage texte
Problème alignement bloc CSS [terminé]Problème d'image d'arrière-plan en CSS
[HTML/CSS] problème d'organisation - Résolu.Problème d'affichage d'un menu en CSS (résolu)
Problème De HTML et CSSProbleme de disposition en CSS
Plus de sujets relatifs à : Problème de CSS


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR