[html/js] Positie van een <span> niet goed in IE

Pagina: 1
Acties:

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Topicstarter
Natuurlijk is IE weer degene die het niet goed doet. Ik heb een tabel met in een cel een stuk tekst. Die tekst is lang genoeg dat ie naar de volgende regel verspringt, en in die tekst staan een aantal spans. Nu wil ik de positie van die span hebben en dat gaat over het algemeen ook goed, maar slechts 1 situatie gaat de mist in.

In IE, als toevallig de span vooraan de volgende regel komt te staan, doordat ie afgebroken wordt (dus zonder <br>, voor de duidelijkheid), is de Y-positie niet correct. De Y-positie is dan precies 1 regel te weinig, maar de X-positie lijkt wel te kloppen.

Ik denk dat dit komt doordat de begintag <span> onder water nog op de vorige regel staat, terwijl de content doorgelopen is op de volgende regel. Technisch gezien klopt het dan dus wel wat ie doet, maar praktisch klopt het gewoon niet. Voor de duidelijkheid: het is dus niet zo dat een deel van de content van die span ook nog op de vorige regel staat.

Wat kan ik hieraan doen, behalve een andere tekst?

日本!🎌


  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Heb je toevallig een stukje voorbeeld code? Dat is namelijk makkelijk kijken en doornemen...

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Topicstarter
Nou vooruit dan :)

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>Untitled Document</title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <script language="javascript" type="text/javascript">
  function findPosY(obj) {
     var curtop = 0;
     if (obj.offsetParent) {
        while (obj.offsetParent) {
           curtop += obj.offsetTop;
           obj = obj.offsetParent;
        }
     } else if (obj.y)
        curtop += obj.y;
     return curtop;
  }
  </script>
</head>

<body>

<table border="1">
  <tr>
    <td>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce
vitae libero. <span onclick="alert(findPosY(this));" style="text-decoration:
underline">Mauris</span> auctor condimentum metus.</td>
  </tr>
</table>

</body>
</html>

Als je je venster dan een pixel of 500~520 breed maakt, zie je dat het woord "Mauris" net naar de volgende regel springt. De Y-positie is dan echter nog steeds (bij mij) 19, terwijl als je je venster nog kleiner maakt (zonder dat Mauris naar de derde regel springt), wordt de Y-positie wel hoger.

[ Voor 15% gewijzigd door _Thanatos_ op 09-12-2004 16:05 ]

日本!🎌


  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Vraag dan de Y positie op van de childNode van die span, misschien werkt dat wel ;)

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Topicstarter
Helaas, de eerst child van die span (de textnode) heeft geen offsetTop en geen offsetParent, dus dat gaat alvast niet werken...

日本!🎌


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Topicstarter
Is al opgelost :), door de tweede letter in een extra span te zetten, en daarvan de Y-positie te lezen. Je krijgt dan dus zoiets:
HTML:
1
<span>t<span>e</span>kstje</span>

De X-positie klopt van de tweede span niet, maar van de eerste span (gelukkig) wel...

Toch jammer dat MS niet es een keer een nieuwe browser gaat maken... nu blijven mensen dat ouwe buggerige ding gebruiken :/

日本!🎌

Pagina: 1