problème de boîte/cadre/float

problème de boîte/cadre/float - HTML/CSS - Programmation

Marsh Posté le 17-08-2004 à 19:51:51    

Me revoici avec mes ptis ennuis de page perso ^^
 
Donc voilà j'ai mis un gros bloc de texte pour remplacer ce qui y sera au final.
 
le XHTML1.0:
 

Code :
  1. <body>
  2. <div id="principal">
  3. <div class="photo">
  4. <img class="photo" src="moi1.png" alt="Photo de moi" />
  5. </div>
  6. <div id="texte">
  7. <!-- Début du texte d'essai -->
  8. <h1>L'histoire de Linux</h1>
  9. <p>
  10. Unix est un des systèmes d'exploitation les plus appréciés, ... etc </p>


 
le CSS:

Code :
  1. body {
  2. pas intéressant
  3. }
  4. div#principal {
  5.     position: absolute;
  6.     height: 100%;
  7.     width: 800px;
  8.     left: 50%;
  9.     margin-left: -400px;
  10.     border: 2px solid #6367F0;
  11.     padding: 5px;
  12.     position: absolute } 
  13. img.photo {
  14. pas intéressant
  15. }
  16. div.photo {
  17. il y a d'autres styles mais qui ne sont pas intéressant ici je pense
  18.    width: 150px;
  19.    height: 200px;
  20.    float: left; }
  21. div#texte {
  22.    float: right; }


 
 
Les screenshots:
 
Internet Explorer:
http://thwz.free.fr/postsHFR/IE3.png
tout en bas, comme vous pouvez le voir le cadre ne se termine pas
 
Mes problemes:
Dans le cas Firefox:
le cadre s'arrete avant la fin du texte --résolu--
le texte ne commence pas en haut, à droite de la photo --résolu--
 
Dans le cas de IE:
le cadre ne se termine pas tout en bas
la sorte de "colonne" à gauche en dessous de la photo n'est pas remplie par le texte --résolu--
 
 
Merci de m'aider à résoudre ces 4 problemes :(


Message édité par thwz le 25-08-2004 à 19:34:48
Reply

Marsh Posté le 17-08-2004 à 19:51:51   

Reply

Marsh Posté le 17-08-2004 à 20:16:51    

essaye de rajouter dans ton div principal un "spacer"
coté HTML:
<div class="spacer">&nbsp;</div>
coté CSS
div.spacer{
clear:both;
}

Reply

Marsh Posté le 17-08-2004 à 21:51:20    

j'ai essayé de rajouter ton spacer entre la fermeture des deux  div. rien n'y fait. puis jlai mis au début, toujours rien :s

Reply

Marsh Posté le 17-08-2004 à 22:30:01    

c'est pourtant la bonne solution a ton problème. je te conseille de lire ceci:
http://www.openweb.eu.org/articles/initiation_float/
 

Reply

Marsh Posté le 21-08-2004 à 14:33:54    

et de mettre overflow : auto; ??
ca pourrait peut etre le faire

Reply

Marsh Posté le 21-08-2004 à 14:44:22    

Pourquoi mettre le texte en flottant à droite ?


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 25-08-2004 à 19:22:31    

gm_superstar:
en effet, en enlevant le float à droite du texte, il se place comme je veux le désirais.
merci bien!
 
les problèmes restants:
sur Firefox, le cadre s'arrête toujours avant la fin du texte
sur IE, la fin du cadre n'apparâit pas
 
j'ai testé overflow, mais il me donne une boîte de déroulement dans mon cadre... ce que je ne désire pas
 

Citation :

Overflow
 
Cette propriété permet d'indiquer si le contenu doit être coupé lorsqu'il y a débordement (trop de contenu pour la taille définie de la boîte.
 
 
  Microsoft Internet Explorer 5 peut aussi accepter les propriétés overflow-x et overflow-y
.  
 
overflow-x, est utilisé lorsque le texte déborde sur la largeur.
 
overflow-y, est utilisé lorsque le texte déborde sur la hauteur.
 
Les valeurs possibles pour ces deux propriétés sont les mêmes que celles de la propriété overflow.
 
Valeurs
visible Le contenu de trop n'est pas coupé et déborde de la boîte.
hidden Le contenu de trop est coupé.
scroll Le logiciel de navigation doit fournir un mécanisme de défilement pour permettre la lecture du contenu en trop.
auto Le résultat dépend du logiciel de navigation. Normalement un mécanisme de défilement devrait être disponible.
inherit (héritage : applique les valeurs de l'élément parent)
Valeur initiale visible


 
n'exiterait-til pas une valeur pour overflow du type "extend", par exemple, qui ferait en sorte que la boîte s'adapte au contenu, ou une propriété similaire?


Message édité par thwz le 25-08-2004 à 19:24:33
Reply

Marsh Posté le 25-08-2004 à 19:33:30    

éhéhé! j'aurais du attendre avant de poster.
j'ai trouvé la solution pour mon problème de cadre avec Firefox: il suffisait d'enlever la propriété height:100% de div#principal.
 
la fin du cadre n'apparâit toujours pas sur IE mais je suppose que cela doit être un problème de padding, ou de margin entre le body et le div#principal.

Reply

Marsh Posté le 25-08-2004 à 19:54:52    

finalement je coince :s
personne n'a une solution?
je pense qu'il faudrait mettre un espace entre le body et la fin du div#principal mais je n'y arrive pas. Je pense que c'est lieu au fait que div#principal est en position: absolute.
 
alors, une idée?

Reply

Marsh Posté le 25-08-2004 à 21:01:47    

si c'est le fait qu'il y en a trop dans ce topic qui vous gène, dites-le et j'en ferais un nouveau où j'expliquerai mon dernier probleme.


Message édité par thwz le 25-08-2004 à 21:02:19
Reply

Marsh Posté le 25-08-2004 à 21:01:47   

Reply

Marsh Posté le 25-08-2004 à 21:02:35    

Une URL pour tester ?


Message édité par gm_superstar le 25-08-2004 à 21:02:41

---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 25-08-2004 à 21:20:57    

Reply

Marsh Posté le 25-08-2004 à 21:34:11    

Bon ça vient visiblement de ton bloc princiapl positionné en absolu... et ça m'a tout l'air d'être un bug :/
 
En fait tu peux essayer une autre méthode pour centrer ton cadre : http://incongru.webdynamit.net/CentrageHorizontal (1ère méthode)
 
Mais il faudra enlever le prologue XML de document HTML car avec ce prologue, IE 6 ne se met pas en mode standard (et le bloc ne sera pas centré)


Message édité par gm_superstar le 25-08-2004 à 21:34:28

---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 25-08-2004 à 21:38:05    

ce qui donnera une page non valide XHTML 1.0 :/, n'est-ce pas?

Reply

Marsh Posté le 25-08-2004 à 21:42:25    

Non, le prologue n'est pas obligatoire.


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 25-08-2004 à 22:29:05    

--> http://thwz.free.fr/autoportrait.php
 
regarde gm_superstar, l'alignement horizontal marche, pourtant j'ai laissé <?xml version="1.0" encoding="iso-8859-1"?>

Reply

Marsh Posté le 25-08-2004 à 22:46:59    

Ah tiens c'est bizarre quand j'avais essayé chez moi ça ne marchait pas [:figti]
 
 
Bon ben tant mieux :D


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 25-08-2004 à 22:47:27    

mais, maintenant que mon bloc est en position absolute, plus aucun moyen de le centrer verticalement n'est-ce pas, si jamais le texte était beaucoup plus petit?

Reply

Marsh Posté le 25-08-2004 à 22:48:37    

Oui, mais s'il est plus petit il n'y a plus de problème de bordure


Message édité par gm_superstar le 25-08-2004 à 22:48:43

---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 25-08-2004 à 23:00:14    

c'est exact mais je crains à utiliser cette page plus tard comme pseudo-frame et avoir les deux cas présents: petit texte et texte beaucoup plus long.
 
pas de solution, ou alors abandonner les pseudos-frames et faire 2 .xhtml ?

Reply

Marsh Posté le 25-08-2004 à 23:29:46    

Yaisse ! J'ai trouvé une solution !
 
Il suffit de placer ton bloc principal en position relative. (change juste absolute par relative). Et ça marche :)
 
 
En fait le bug est provoqué par la présence du flottant dans le bloc en position absolue... Va comprendre...


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 26-08-2004 à 01:52:38    

lol  t vachement fort :p
respect :o
 
mais j'ai encore changé d'avis. finalement le centré vertical, c'est pas super. j'aimerais savoir si il y a moyen de tirer le cadre, même si il est vide de texte jusqu'au bord de la fenêtre, pour qu'il remplisse tout l'écran en hauteur, qu'il soit remplit ou pas?
j'ai pensé au JavaScript mais je sais pas trop comment m'y prendre

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed