2010-08-12 19 views
1

J'ai rencontré un autre problème dans IE8 - les bordures en pointillés se brouillent et se brisent en faisant défiler la page. Ci-dessous, 2 pages valides pour le w3 démontrant le comportement: comme transitionnel HTML4 et transitionnel XHTML1.Bogue de rendu de bordure en pointillés dans IE8

Dans le 1er exemple, j'ai découvert une solution totalement bizarre pour le problème en ajoutant un élément < en entrée >. Chaque fois qu'il est là, les frontières restent en une seule pièce (voir Modifier).

HTML4 transitoire:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 
<TITLE>VALID HTML4 TR</TITLE> 
<STYLE type="text/css"> 
#box { 
float: left; 
width: 200px; 
height: 2000px; 
border-right: dashed 1px black; 
} 
</STYLE> 

</HEAD> 
<BODY> 

<DIV id="box"></DIV> 

<INPUT><!-- REMOVE TO BREAK THE DASHED LINE ON SCROLL --> 

</BODY> 
</HTML> 

XHTML1 de transition:

Voici l'entrée </> magique ne rejette pas.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>VALID XHTML1 TR</title> 
<style type="text/css"> 
#box { 
float: left; 
width: 200px; 
height: 2000px; 
border-right: dashed 1px black; 
} 
</style> 

</head> 
<body> 

<div id="box"></div> 

</body> 
</html> 

Ainsi,

Ce que je besoin est le 2ème exemple pour travailler le même que le 1er sans changer la DTD. Toutes les idées sont les bienvenues.

Merci


Edit:

La magie entrée < > par exemple HTML4 ne fonctionne pas pour tout le monde, même en utilisant la même IE8 construire.

Même problème pour le style pointillé.

Les bordures ne se cassent pas si la largeur de la bordure> 1px.

+0

:) N'utilisez pas de bordure pointillée. Si "box" est statique, alors vous pourriez peut-être utiliser Photoshop et l'appliquer comme arrière-plan? – Hristo

+0

J'espérais utiliser une bordure pointillée sur mes tables. Passer à des arrière-plans répétés apporterait beaucoup de douleur – krukid

+0

Note pour référence future: tant que vous avez une DTD, et que celle-ci n'est pas une pré-HTML4, elle affichera dans le même mode standard, HTML, XHTML, indépendamment. La seule différence est l'analyse des méthodes, mais même alors, la DTD elle-même ne le définit pas, le type mime le fait. Donc ... pas vraiment besoin de poster une copie HTML4 et une copie XHTML. –

Répondre

1

Je ne pense pas que vous devriez utiliser des hacks pour compenser le mauvais comportement du navigateur. Il est préférable d'accepter que votre contenu et votre style soient différents d'un navigateur à l'autre et que cela ne vaut pas la peine d'essayer de trouver exactement la même chose dans chaque navigateur.

Est-ce qu'une ligne continue fonctionne? Vous pourriez faire un fichier CSS pour IE seulement qui utilise un style légèrement différent.

+0

Vous avez raison, bien sûr. Avec ce hack, j'ai simplement fait remarquer que IE8 était capable d'afficher correctement les bordures pointillées et pensait qu'il y avait un bon moyen de contourner le problème. Apparemment non, cependant :) – krukid