Pokazywanie i ukrywanie DIVów w JavaScript - styl height wszystko psuje

0

Witam,
usiłuję zrobić piękne, rozwijane DIVy. Całość ma wyglądać tak, że po załadowaniu strony widoczny jest DIV1, który zawiera link ukrywający DIV1 i pokazujący DIV2. DIV2 z kolei ma możliwość przełączenia na DIV1. To działa.
Teraz chciałbym aby w DIV2 znajdował się jeszcze jeden scrollowalny DIV2_inner o ustalonej wysokości i tu pojawia się problem. Jeśli ustawimy stałą wysokość w DIV2_inner pod IE8 przestaje być wyświetlany. Pod FF działa w porządku. Będę wdzięczny za wszelkie pomysły, jak rozwiązać ten problem.

Oto przykład: http://www.ojrzyk.republika.pl/test.html

I kod:

<html>
  <head>
    <script>
      function show (pId)
      {
        var lElem = document.getElementById(pId);
        lElem.style.visibility = "visible";
        lElem.style.position = "relative";
      }
      
      function hide (pId)
      {
        var lElem = document.getElementById(pId);
        lElem.style.visibility = "hidden";
        lElem.style.position = "absolute";
      }
    </script>
  </head>
  <body>
    <div id="div1" style="visibility:visible;position:realtive">
      <a href="#" onclick="show('div2');hide('div1')">pokaz div2</a>
      <div>
        zawartosc div1
      </div>
    </div>
    <div id="div2" style="visibility:hidden;position:absolute">
      <a href="#" onclick="show('div1');hide('div2')">pokaz div1</a>
      <div style="height:150px;overflow:scroll;border:solid 1px gray">
        zawartosc div2
      </div>
    </div>

  </body>
</html>
2

Lepszym rozwiązaniem jest .style.display = "block"/"none"

1

visibility ukrywa element ale zajmuje on dalej miejsce, lepszy rozwiązaniem jest rzeczywiście display: none

0
kamdz napisał(a)

visibility ukrywa element ale zajmuje on dalej miejsce, lepszy rozwiązaniem jest rzeczywiście display: none
Dlatego sobie wykombinowałem, że oprócz visibility:hidden ustawiam jeszcze position:absolute, ale zastosowanie display całkowicie rozwiązuje mój problem. Dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1