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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [HTML/CSS]Problème de positionment avec IE, trou de 1px

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[HTML/CSS]Problème de positionment avec IE, trou de 1px

n°1305316
Yoyo@
Posté le 14-02-2006 à 15:32:03  profilanswer
 

Salut,
J'ai maintes fois rencontré des problèmes par le passé, et j'avais posté sur ce forum, mais personne n'avait pu m'aider.
 J'ia finalement réussi à isoler mon problème de manière extrêmement claire.
 
En fait, il se trouve qu'IE a du mal à positioner de manière précise et absolue un élément par rapport à un autre élément, lorsque la taille de l'élément parent est impaire. Bref, peu importe les détails, regardez cet exemple pour vous en convaincre:
 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
 <title>Test!</title>
</head>
<body>
 <div style="position: relative; background-color: #ff0; width: 50%; font-size: 1%; height: 30px; border: 2px solid #00f;">
  <div style="position: absolute; height: 100%; font-size: 1%; width: 2px;; top: 0; right: 0; background-color: #f00;"></div>
 </div>
</body>
</html>


 
Essayez sous IE, en redimensionnant votre fenêtre et vous verrez qu'il y aura par moment un trou de 1px entre l'élément postionné en absolu en rouge sur la droite du conteneur jaune et la bordure noire de ce même élement jaune.
 
Bref, je suis assez content d'avoir pu isoler ce problème, et je comprends mieux pourquoi j'avais tant de mal avec certains de mes éléments.
 
Auriez vous une idée pour savoir comment je pourrais éviter ce problème, c'est à dire pouvoir caler de manière précise mon élément rouge par rapport à la droite de mon élément jaune. (le but étant de faire une bordure arrondie, mais peu importe)
 
Merci.


Message édité par Yoyo@ le 14-02-2006 à 15:34:26
mood
Publicité
Posté le 14-02-2006 à 15:32:03  profilanswer
 

n°1305372
nlc
Le mieux est l'ennemi du bien
Posté le 14-02-2006 à 16:16:30  profilanswer
 

comme ca ca marche !! :D  
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html>
  3. <head>
  4. <title>Test!</title>
  5. </head>
  6. <body>
  7. <div style="position: relative; background-color: #ff0; width: 50%; font-size: 1%; height: 30px; border: 2px solid #00f;">
  8.   <div style="position: absolute; height: 100%; font-size: 1%; width: 2px;; top: 0px; right: -1px; background-color: #f00;"></div>
  9. </div>
  10. </body>
  11. </html>


 
Va falloir faire comme j'ai fait pour mon pb d'image, detecter le navigateur et et changer le parametre right en javascrit  :fou:


Message édité par nlc le 14-02-2006 à 16:16:49
n°1305377
Yoyo@
Posté le 14-02-2006 à 16:19:59  profilanswer
 

Strictement impossible, car la largeur n'est pas fixe... Donc, si la largeur du div parent est paire, alors IE semble ne pas créer de décalage, alors que si elle est impaire, le décalage est créé... Mais je ne connais pas cette largeur...

n°1305426
nlc
Le mieux est l'ennemi du bien
Posté le 14-02-2006 à 16:46:03  profilanswer
 

On doit pouvoir la recuperer en javascript en donnant un nom au div et en recuperant le parametre adequat de l'objet.
En gros faut recuperer l'evenement du redimensionnement de la fenetre, recuperer la largeur du div (si on peut) et regler le right a 0 ou -1.
 
C'est ce que je disais dans mon autre post : on passe notre temps a essayer de resoudre un probleme qui n'existerait pas si IE respectait un peu les standards. C'est lassant. :(
 

n°1305553
gatsu35
Blablaté par Harko
Posté le 14-02-2006 à 18:13:03  profilanswer
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
  2.   "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <title>Test!</title>
  6. <style type="text/css">
  7. /*<![CDATA[*/
  8. #boite1{
  9.     position: relative;
  10.     background-color: #ff0;
  11.     width: 455px;
  12.     font-size: 1px;
  13.     height: 61px;
  14.     border: 2px solid #00f;
  15. }
  16. #boite2{
  17.     position: absolute;
  18.     height: 30px;
  19.     font-size: 1px;
  20.     width: 30px;
  21.     bottom: 0;
  22.     right: 0;
  23.     background-color: #f00;
  24. }
  25. /*]]>*/
  26. </style>
  27. </head>
  28. <body>
  29. <div id="boite1"><div id="boite2"></div></div>
  30. </body>
  31. </html>


 
même pour le vertical ca passe pas non plus
j'ai déjà eu ce problème en voulant mettre des corners

n°1305561
omega2
Posté le 14-02-2006 à 18:18:01  profilanswer
 

Vivement le css3 qui permettra de mettre des corners proprement sans rajouter pleins de div partout du moins dans les navigateurs qui le géreront comme il faut.


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

  [HTML/CSS]Problème de positionment avec IE, trou de 1px

 

Sujets relatifs
[Struts + MySql] probleme pour acceder à la base de donnéesprobleme ajoute d'un SHOUTBOX (chat)
probleme lors d'un erase() sur une listeHTML - agrandir animation wmv dans une popup
[CSS] Problème de compatibilité, IE againProbleme d'activation de private sub
[css html] Selection texte et roulette > problèmes sous IE[RESOLU]probleme curseur main
Problème de connexion. 
Plus de sujets relatifs à : [HTML/CSS]Problème de positionment avec IE, trou de 1px


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