Avatar billede c-sharp Nybegynder
13. marts 2007 - 13:50 Der er 7 kommentarer og
1 løsning

Problem med display:block ofg <tbody> i Mozilla

Jeg har en tabel hvor jeg skal skjule nogle rækker det virker som det skal i IE, men i Mozilla går det galt, der kommer de "dynamiske" rækker først frem under den sidste "faste" række.

Jeg har følgende kode:

<script type="text/javascript">

        function test()
        {
            document.getElementById("test").style.display="block";
        }
         
    </script>
     
   
    <input type="button" value="tryk" onclick="test()" />
   
   
    <table style="background-color: red">
        <tr>
            <td>
                <table border="1">
                    <tr>
                        <td>top</td>
                        <td>top</td>
                    </tr>
                   
                        <tbody id="test" style="display:none">
                            <tr>
                                <td>test</td>
                                <td>Test1</td>
                            </tr>
                            <tr>
                                <td>test</td>
                                <td>Test1</td>
                            </tr>
                            <tr>
                                <td>test</td>
                                <td>Test1</td>
                            </tr>
                        </tbody>
                   
                    <tr>
                        <td>bund</td>
                        <td>bund</td>
                    </tr>
                   
                </table>
           
            </td>
        </tr>
    </table>
Avatar billede roenving Novice
13. marts 2007 - 14:02 #1
Prøv f.eks.

<script type="text/javascript">
var ua = navigator.userAgent.toLowerCase(), isIE = ua.indexOf("msie") > 0 && ua.indexOf("opera") == -1;
  function test(){
    document.getElementById("test").style.display = isIE ? "block" : "table-row-group";
  }
</script>
Avatar billede c-sharp Nybegynder
13. marts 2007 - 14:26 #2
Tusind tak for det, smid et svar så hælder jeg samtlige 45 point ned af nakken på dig... :-)
Avatar billede softspot Forsker
13. marts 2007 - 14:27 #3
Ville det ikke være nok bare at erklære de andre rækker i hver sin tbody (eller thead og tfoot), så der ikke ligger nogle tr-elementer direkte under table-elementet...?

                <table border="1">
                    <thead>
                        <tr>
                            <td>top</td>
                            <td>top</td>
                        </tr>
                    </thead>

                        <tbody id="test" style="display:none">
                            <tr>
                                <td>test</td>
                                <td>Test1</td>
                            </tr>
                            <tr>
                                <td>test</td>
                                <td>Test1</td>
                            </tr>
                            <tr>
                                <td>test</td>
                                <td>Test1</td>
                            </tr>
                        </tbody>

                    <tfoot>   
                        <tr>
                            <td>bund</td>
                            <td>bund</td>
                        </tr>
                    </tfoot>
                </table>
Avatar billede roenving Novice
13. marts 2007 - 14:38 #4
-- men det er under alle omstændigheder ikke særlig smart at bruge display:block overfor andet end egentlige block-level elementer !-)

-- og selv om man kan sige, at et tbody er et block-element, så er det dog så specielt i forhold til andre block-elementer, at det er bedst at give det den korrekte display-type, hvis det understøttes af browseren !o]

Velbekomme '-)
Avatar billede roenving Novice
13. marts 2007 - 14:40 #5
Desuden indsættes det så kun som den ene række, den anden forbliver tom i både FireFox og Opera !-)
Avatar billede roenving Novice
13. marts 2007 - 14:56 #6
-- og tak for point ;~}
Avatar billede olebole Juniormester
13. marts 2007 - 15:05 #7
<ole>

Alene navnet på property'en er dybt uheldigt: 'display' ... på et element, der ikke kan renderes ... hmmmmmmmm ...?!??!!!
Ser tonen A mon mere cirkulær ud end tonen C?  ;o)

/mvh
</bole>
Avatar billede roenving Novice
13. marts 2007 - 15:09 #8
*lol*
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester