firestone: Problem mit anzeigen einer Tabelle

Hallo Zusammen,

ich habe in meiner Seite folgende Tabelle

  
<table id="B" style="display:none"  width="100%" border="1">  
		<tr >  
		  
		<td valign="middle" align="left" >Wert 1</td>  
		<td valign="middle" align="left" >Wert 2</td>  
		<td valign="middle" align="left" >Wert 3</td>		  
		  
		</tr>	  
		  
		<tr >  
		  
		<td valign="middle" align="left" >Wert 1</td>  
		<td valign="middle" align="left" >Wert 2</td>  
		<td valign="middle" align="left" >Wert 3</td>	  
		  
		</tr>	  
		  
    </table>  
  

Dazu habe ich folgenden Button definiert

  
<input type="button" name="legende" value="Status-Legende anzeigen" onclick="javascript:show('B')">  

Wenn die Seite aufgebaut wird soll die Tabelle zuerst nicht zusehen sein erst wenn man auf den Button klickt. Im IE Funktioniert das ganze auch super. Im Mozilla Firefox habe ich allerdingsdas Problem, das er die width angabe ignoriert. Er schiebt die Tabellenspalten zusammen. Nehme ich das display:none weg, so wird die Tabelle sofort angezeigt in richtiger Breite klicke ich allerdings dann einmal auf den Button schiebt er sie wieder zusammen.

Was mache ich falsch :(

Lg Firestone

  1. Hi!

    Was macht denn show()?

    --
    Vergesst Chuck Norris.
    Sponge Bob kann unter Wasser grillen!
    1. Hi!

      Was macht denn show()?

      Hier der Code

        
       function show (member) {  
              if (document.getElementById) {  
                  if (document.getElementById(member).style.display == "block") {  
                      document.getElementById(member).style.display = "none";  
                  } else {  
                      document.getElementById(member).style.display = "block";  
                  }  
              }  
          }  
      
      
      1. Hi!

        Was macht denn show()?

        Hier der Code

        function show (member) {
                if (document.getElementById) {
                    if (document.getElementById(member).style.display == "block") {
                        document.getElementById(member).style.display = "none";
                    } else {
                        document.getElementById(member).style.display = "block";
                    }
                }
            }

        Ok wenn ich die Funktion show so abänder funktioniert es  
        ~~~html
          
         function show (member) {  
                if (document.getElementById) {  
                    if (document.getElementById(member).style.display == "") {  
                        document.getElementById(member).style.display = "none";  
                    } else {  
                        document.getElementById(member).style.display = "";  
                    }  
                }  
            }  
        
        

        Aber warum wer kann mir das erklären ?

        1. @@firestone:

          nuqneH

          Aber warum wer kann mir das erklären ?

          Das in http://forum.de.selfhtml.org/archiv/2010/2/t195589/#m1309269 zu Tabellenzeilen Gesagte gilt auch für Tabellen. Hier wäre "table" der richtige Wert für die 'display'-Eigenschaft; das verstehen alte IEs aber nicht.

          Qapla'

          --
          Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
          (Mark Twain)
          1. @@firestone:

            nuqneH

            Aber warum wer kann mir das erklären ?

            Das in http://forum.de.selfhtml.org/archiv/2010/2/t195589/#m1309269 zu Tabellenzeilen Gesagte gilt auch für Tabellen. Hier wäre "table" der richtige Wert für die 'display'-Eigenschaft; das verstehen alte IEs aber nicht.

            Qapla'

            Gibt es denn ein Problem wenn ich das auf dislpay:"" stehen lasse damit funktioniert es ja scheinbar .

            1. Hiho!

              Gibt es denn ein Problem wenn ich das auf dislpay:"" stehen lasse damit funktioniert es ja scheinbar .

              Generell nicht. Denn, wie im von gunnar verlinktem Thread beschrieben, wird dann der Browserdefaultwert genommen. Damit verlaesst Du Dich natuerlich auf die korrekte Umsetzung durch den Browser.

              --
              Vergesst Chuck Norris.
              Sponge Bob kann unter Wasser grillen!
              1. @@Steel:

                nuqneH

                Damit verlaesst Du Dich natuerlich auf die korrekte Umsetzung durch den Browser.

                Und genau das will man ja auch. Es wird ja wohl kein Browser "none" als Defaultwert haben.

                Qapla'

                --
                Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
                (Mark Twain)
                1. Moin!

                  Und genau das will man ja auch. Es wird ja wohl kein Browser "none" als Defaultwert haben.

                  Wolln wirs hoffen. Eine konkrete Angabe, was man genau will, halte ich immer fuer besser. Dass diese in diesem Fall aber nicht von jedem aktuell im Umlauf befindlichen Browsern verstanden wird, ist natuerlich eine Sache fuer sich.

                  --
                  Vergesst Chuck Norris.
                  Sponge Bob kann unter Wasser grillen!
                2. @@Steel:

                  nuqneH

                  Damit verlaesst Du Dich natuerlich auf die korrekte Umsetzung durch den Browser.

                  Und genau das will man ja auch. Es wird ja wohl kein Browser "none" als Defaultwert haben.

                  Qapla'

                  Ok Super danke :) ihr habt mir geholfen dann änder ich die Funktion ab :).

                  Lg Firestone

  2. @@firestone:

    nuqneH

    <table id="B" style="display:none"  width="100%" border="1">
    <tr >

      <td valign="middle" align="left" >Wert 1</td>  
      <td valign="middle" align="left" >Wert 2</td>  
      <td valign="middle" align="left" >Wert 3</td>  
    

    --8<--
    Was mache ich falsch :(

    Du gibst an Darstellung mit missbilligten HTML-Attributen an. Entferne sie und verwende CSS – und zwar im Styelsheet, nicht inline.

    In deinem Markup bleibt geanu das übrig:

    <table id="B">  
      <tr>  
        <td>Wert 1</td>  
        <td>Wert 2</td>  
        <td>Wert 3</td>
    

    usw.

    Im Stylesheet kannst du schreiben:

    #B td { vertical-align: left; text-align: left }

    Aber wozu eigentlich? Das ist die Defaulteinstellung der Browser.

    Ausblenden solltest du die Tabelle nur bei aktiviertem JavaScript; sonst kann der Nutzer sie ja nicht einblenden.

    Dazu 'html' oder 'body' per JavaScript die Klasse "js" verpassen (Javascript mehrstufig zünden [PERFORMANCE-BP2]) und im Stylesheet:

    .js #B { display: none }

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. Hallo,

      Im Stylesheet kannst du schreiben:
      #B td { vertical-align: left; text-align: left }

      das kann man schreiben, natürlich.
      Aber was stellst du dir bei "left" für die Eigenschaft vertical-align vor?

      *scnr*
       Martin

      --
      Kleine Geschenke erhalten die Freundschaft.
      Große verderben sie aber meist auch nicht.
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      1. Hi ther,

        Aber was stellst du dir bei "left" für die Eigenschaft vertical-align vor?

        ein topologisches Paradoxon...

        1. @@Klawischnigg:

          nuqneH

          Aber was stellst du dir bei "left" für die Eigenschaft vertical-align vor?

          Dawar ich doch tatsächlich schon beim zweiten Teil des Gedankens.

          ein topologisches Paradoxon...

          *g*

          Aber mal im Ernst: Wie wirken denn eigentlich text-align und vertical-align bei von oben nach unten geschriebenen Schriften?

          Sieht so aus, als ob eine der beiden Eigenschaften falsch benannt wurde.

          Qapla'

          --
          Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
          (Mark Twain)
  3. Versuch mal wenn Du die width als ccs-style angibst anstatt des HTML-Attributs.

    Also so:
    <table id="B" style="display:none;width:100%" border="1">

    Mit den Attributen hatte ich im FF auch hin und wieder kleinere Probleme.

    mfg
    Flanna