Announcement

Collapse
No announcement yet.

IE stellt Tabelle falsch dar

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • IE stellt Tabelle falsch dar

    HTML Code:
    <table style="width: 910px; height: 259px;" border=0>
    <tr style="height: 48px;">
    <td>&nbsp;</td>
    <td style="padding-top: 14px;" colSpan=2><b>&Uuml;berschrift</b></td>
    <td style="padding-top: 14px;"><img src="rot.png"><img src="gelb.png"><img src="gruen.png"></td>
    <td>&nbsp;</td>
    <td style="padding-top: 14px;" colSpan=2><b>&Uuml;berschrift 2</b></td>
    <td style="padding-top: 14px;"><img src="rot.png"><img src="gelb.png"><img src="gruen.png"></td>
    <td>&nbsp;</td>
    </tr>
    
    <tr>
    <td style="width: 25px;">&nbsp;</td>
    <td style="width: 100px;">Wert 1a</td>
    <td style="width: 240px;">Wert 1b</td>
    <td style="width: 70px;">&nbsp;</td>
    <td style="width: 40px;">&nbsp;</td>
    <td style="width: 100px;">Wert 2a</td>
    <td style="width: 240px;">Wert 2b</td>
    <td style="width: 70px;">&nbsp;</td>
    <td style="width: 5px;">&nbsp;</td></tr>
    </table>
    Die Spaltenbreiten, die ich angebe sind also:
    (25px + 100px + 240px + 70px + 40px + 100px + 240px + 70px + 25px) = 910px
    ergo: genau, wie von mir gewollt

    Öffne ich die Seite dann mit dem IE haben die Spalten allerdings folgende Maße:

    (11px + 99px + 214px + 60px + 16px + 133px + 270px + 76px + 11px) = 890px
    ergo: mir fehlen zwei Pixel, da die Breite, die mir der IE für die gesamte Tabelle anzeigt, 910px beträgt.

    Kann mir jemand verraten, was der IE mit den verschwundenen 20px angestellt hat und wie ich die wiederbekomme?

  • #2
    Welche IE-Version? Bis einschl. IE8 ist der IE oft "etwas anders" zu behandeln.

    Comment


    • #3
      Sorry, habe ich vergessen anzugeben.

      IE 8

      Comment


      • #4
        Moin,

        angesichts der Tatsache, dass Dein HTML-Code ziemlich fehlerhaft ist[1] (mal von einem Validator checken lassen!), und Du hier die Hälfte des Codes vergessen hast (Link wäre besser gewesen), kann man vermuten, dass Du den Doctype vergessen oder einen falschen Doctype gewählt hast, so dass Deine Seite evtl. im Quirks Mode gerendert wird.

        Möglicherweise ist das aber auch einer der Tabellen-Bugs, die es im IE gibt, wobei der IE8 ja eigentlich schon um einiges besser geworden ist, also einfach mal nach Tabellen-Bugs googlen.

        Grüße,
        -Efchen

        [1] Auch die Semantik ist falsch. Du verwendest Tags, die keine Semantik vermitteln und missbrauchst den oberen Teil der Tabelle zu Layoutzwecken. Vermutlich verwendest Du die <img>-Tags auch dazu, Design zu machen und nicht, um Inhalte einzustellen. Ich kann mir zumindest nicht vorstellen, was an den bunten Images Inhalt sein soll.
        Vielleicht informierst Du Dich parallel zu Deinem Problem auch mal darüber, was HTML eigentlich ist, was man in dem Zusammenhang unter "Semantik" versteht und warum man Inhalt und Layout trennt (was Du auch nicht tust).
        Soll heißen, so wie Du den Code bisher erstellt hast, wirst Du noch oft über Steine stolpern, weil Du HTML aller Wahrscheinlichkeit nach völlig falsch gelernt hast (was angesichts der vielen fehlerhaften Tutorials im Netz auch kein Wunder ist).
        Das hier ist eine gute Adresse: http://fwpf-webdesign.de/einfuehrung

        Comment


        • #5
          Originally posted by Efchen View Post
          Du verwendest Tags, die keine Semantik vermitteln und missbrauchst den oberen Teil der Tabelle zu Layoutzwecken.
          Den Teil verstehe ich nicht.

          Das mit den <img>-Tags: Es handelt sich tatsächlich um inhalt. Es sind drei Kugeln (rot, gelb, gruen). Quasi wie bei einer Ampel

          Comment


          • #6
            Die Aussage bezog sich nicht auf Deine Frage an sich.

            Das Tag <b> hat keine semantische Bedeutung (zumindest bis HTML4). Wenn Du etwas fett machen willst, dann machst Du das mit CSS. Aber eigentlich musst Du Dir die Frage stellen, warum Du den Text "Überschrift" fett haben willst. Eine Überschrift ist das ja noch nicht. Dazu musst Du den Text erstmal als Überschrift auszeichnen. Dazu gibt es die Tags <h1> bis <h6> (logische Reihenfolge beachten!). Bei Tabellenzellenüberschriften gibt es <th>, wobei ich hier ziemlich sicher bin, dass das nichts mit der Tabelle selbst zu tun haben soll.

            Was Deine Kugeln angeht, da fehlt das alt-Attribut, das angezeigt wird, wenn die Images nicht geladen werden können. Man merkt hier sehr gut, ob die Kugeln Inhalt darstellen, wenn man nach einem Alternativtext sucht. Findet man keinen, ist das meist ein Anzeichen dafür, dass die Bilder nur Zierde sind, dann sollte man sie per CSS (background-image) einbinden. Schalte Deine Images im Browser ab, dann wirst Du sehen, ob Dein Alternativtext gut gewählt ist.

            Und schau Dir die von mir verlinkte Site an, damit Du HTML lernst. Mit CSS zu arbeiten, ohne fundiertes HTML-Wissen ist meist sehr schwer. Gerade Anfänger tun sich dann mit CSS sehr schwer und verstehen den Sinn nicht ganz. Außerdem muss man oft den CSS-Code (besser übrigens als externes Stylesheet) wieder und wieder ändern, wenn man den HTML-Code korrigiert, deswegen sollte der von Anfang an richtig stehen.

            Gerne kann ich das weiter ausführen, wenn Dich das interessiert (sollte es eigentlich, wenn man Websites erstellen will

            Grüße,
            -Efchen

            Comment


            • #7
              OK, war wohl mein Fehler, so gesehen. Wollte nur das "notwendigste", sprich: die Spaltenbreiten angeben. Dass man alt-Attribute angibt ist mir schon klar. Und dass ich Überschriften mit den entsprechenden Tags maskiere auch. Ich hätte das für das Beispiel hier auch "Titel" oder "Bezeichnung" nennen können.

              Im Anhang sende ich mal zwei Bilder (wie es sein soll und allen Browsern != IE angezeigt wird [soll.png] und wie es im IE angezeigt wird [ist.png]) und hier nochmal den Originalquellcode (Ohne Reduktion der irrelevanten Daten)

              HTML Code:
              <table border="0" style="height: 259px; width: 910px; background-image: url('/themes/theme400/images/background_kreditkarte.png');">
              
              <tr style="height: 48px;">
              <td>&nbsp;</td>
              <td style="padding-top: 14px; font-weight: bold;" colspan="2"><b>&raquo; Senior Buchhalter (m/w)</td>
              <td style="padding-top: 14px;"><img src="/themes/theme400/images/rot.png" alt="geschlossen" title="geschlossen"><img src="/themes/theme400/images/gelb.png\" alt="l&auml;uft" title="l&auml;uft"><img src="/themes/theme400/images/gruen.png\" alt="offen" title="offen"></td>
              <td>&nbsp;</td>
              <td style="padding-top: 14px; font-weight: bold;" colspan="2"> &raquo; Funknetzoptimierung Pro - D... 2008 + &quot;16+1&quot; (m/w)</td>
              <td style="padding-top: 14px;"><img src="/themes/theme400/images/rot.png" alt="geschlossen" title="geschlossen"><img src="/themes/theme400/images/gelb.png\" alt="l&auml;uft" title="l&auml;uft"><img src="/themes/theme400/images/gruen.png\" alt="offen" title="offen"></td>
              <td>&nbsp;</td>
              <td>&nbsp;</td>
              </tr>
              
              <tr>
              <td style="width: 25px;">&nbsp;</td>
              <td style="width: 100px;">Standort</td>
              <td style="width: 240px;">D-6</td>
              <td style="width: 70px;">&nbsp;</td>
              <td style="width: 40px;">&nbsp;</td>
              <td style="width: 100px;">Postleitzahl</td>
              <td style="width: 240px;">M&uuml;nchen</td>
              <td style="width: 70px;">&nbsp;</td>
              <td style="width: 25px;">&nbsp;</td>
              </tr>
              
              <tr>
              <td>&nbsp;</td>
              <td>Start</td>
              <td>nach Vereinbarung</td>
              <td>&nbsp;</td>
              <td>&nbsp;</td>
              <td>Start</td>
              <td>asp / nach Vereinbarung</td>
              <td>&nbsp;</td>
              <td>&nbsp;</td>
              </tr>
              
              <tr>
              <td>&nbsp;</td>
              <td>Laufzeit</td>
              <td>Langfristig</td>
              <td>&nbsp;</td>
              <td>&nbsp;</td>
              <td>Laufzeit</td>
              <td>Festanstellung</td>
              <td>&nbsp;</td>
              <td>&nbsp;</td>
              </tr>
              
              <tr>
              <td>&nbsp;</td>
              <td>Art</td>
              <td>Festanstellung</td>
              <td>&nbsp;</td>
              <td>&nbsp;</td>
              <td>&nbsp;</td>
              <td>&nbsp;</td>
              <td>&nbsp;</td>
              <td>&nbsp;</td>
              </tr>
              
              <tr>
              <td>&nbsp;</td>
              <td colspan="3">Aufgabenbeschreibung</td>
              <td>&nbsp;</td>
              <td colspan="3">Aufgabenbeschreibung</td>
              <td>&nbsp;</td>
              </tr>
              
              <tr>
              <td>&nbsp;</td>
              <td colspan="3">Beratung bei Steuerfragen, Steuerplanung sowie Betriebspr&uuml;fungen, Recherche und Erstellung von Steuerrichtlinien, Arbeitsanweisungen, <a href="/node/87/3" style="color: #ff6500;">... &raquo;&raquo;</a></td>
              <td>&nbsp;</td>
              <td colspan="3">Durchf&uuml;hrung von Ma&szlig;nahmen im Rahmen der Funknetzoptimierung (Schwerpunkt Erstoptimierung, Barring und Portierung) zur Verbesserung der Netzqualit&auml;t im 2G und 3G-Netz, mit der ... &raquo;&raquo;</td>
              <td>&nbsp;</td>
              </tr>
              
              </table>
              Attached Files

              Comment


              • #8
                Originally posted by hamburger_1983 View Post
                hier nochmal den Originalquellcode (Ohne Reduktion der irrelevanten Daten)
                Wenn das alles ist, dann muss ich sagen: Da fehlt der Doctype, der gesamte head und das body-Tag.

                Und nach wie vor - auf die Gefahr hin, dass Du Dich ärgerst, weil ich Dein scheinbar eigentliches Problem nicht beantworte - bin ich der Meinung, dass die Tabelle nicht richtig ist. Ich sehe da keine wirklichen tabellarischen Daten, dazu gehört auch, dass die klassischen Spaltenüberschriften fehlen usw. Selbst die Daten zur Stellenbeschreibung sind ja keine tabellarischen Daten.

                Ich bin der Meinung, dass Du Deinen Inhalt falsch ausgezeichnet hast, wenn Du das korrigierst, wirst Du Dein ursprüngliches Problem auch nicht mehr haben, weil Du dann gar keine Tabelle mehr haben wirst.
                Selbst wenn das mehrere Stellenbeschreibungen auf einer Seite werden sollen, dann wird das insgesamt bestenfalls eine Liste, aber keine Tabelle.

                Ich kann mich irren, schließlich ziehe ich diese Informationen aus Deinen Screenshots und dem bisherigen Code, letztendlich musst Du wissen, wie Dein Inhalt gemeint ist, aber überleg Dir das mal, ob Du hier wirklich tabellarische Daten hast, oder ob Du die Tabelle nur zu Layoutzwecken missbrauchst.

                Comment


                • #9
                  Ok, dann nochmal der Bereich bis einschl. <body>

                  HTML Code:
                  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html>";
                  <head>
                  <title>Testseite</title>
                  <meta http-equiv="Content-Style-Type" content="text/css"/>
                  <meta http-equiv="content-type" content="text/html; charset=ISO-8859-15">
                  <script type="text/javascript" src="/themes/theme400/libs/jslibs.js"></script>
                  <link rel="stylesheet" href="/themes/theme400/styles/main.css" type="text/css" media="screen" />
                  </head>
                  <body>
                  Den abschliessendes Body und html-Tag brauche ich wohl nicht zu erwähnen

                  Comment


                  • #10
                    Du hast Deinen Code auch noch nicht validieren lassen, oder?
                    Der Doctype stimmt in jedem Fall nicht, Du sagst, es sei HTML 4.01 Transitional[1], aber verwendest die DTD für XHTML 1.0 Strict!?

                    Könnte sein, dass der IE dann im Quirks Mode rendert. Verwende also einen richtigen Doctype, wo alle Browser im Standards Mode rendern.

                    Nach wie vor bin ich der Meinung, Dein Problem hat sich ob der falschen Auszeichnung in HTML bereits in Luft aufgelöst.

                    Grüße,
                    -Efchen

                    [1] Wieso Transitional? Für welchen Übergang arbeitest Du? Übergang? Na, "Transitional" heißt doch "Übergang~", ist eigentlich eingeführt, um alte Websites aus den 1990ern mit einem Doctype versehen zu können, dass sie validieren. Neue Websites sollten niemals mit einer Transitional-Variante ausgezeichnet sein. Dazu kommt, dass man mit einer Transitional-Variante HTML nicht richtig lernt, weil man nur bei Strict auf seine Fehler richtig hingewiesen wird.

                    Comment


                    • #11
                      Originally posted by Efchen View Post
                      Ich sehe da keine wirklichen tabellarischen Daten, dazu gehört auch, dass die klassischen Spaltenüberschriften fehlen usw.
                      Die Spaltenüberschriften sind in dem Fall nicht über den dazugehörigen Daten, sondern links davon:

                      Beispiel:
                      Überschrift: Standort
                      Datum: D-6


                      Originally posted by Efchen View Post
                      Selbst die Daten zur Stellenbeschreibung sind ja keine tabellarischen Daten.
                      Die Stellenbeschreibung fällt unter die Überschrift "Titel", die hier allerdings nicht angezeigt werden soll.

                      Originally posted by Efchen View Post
                      Ich bin der Meinung, dass Du Deinen Inhalt falsch ausgezeichnet hast
                      Falsch ausgezeichnet = Ohne Spaltenüberschrift?

                      Originally posted by Efchen View Post
                      dann wird das insgesamt bestenfalls eine Liste, aber keine Tabelle.
                      Das Tabellenlayout wurde von meinem Chef so vorgegeben und ich soll das umwandeln. Im Gegensatz zu mir hat er allerdings nie in dem Bereich Programmierung gelernt und lässt sich auch nicht ausreden, dass nicht alles genauso klappt wie er es sich vorstellt, denn es MUSS funktionieren.

                      Originally posted by Efchen View Post
                      Ich kann mich irren, schließlich ziehe ich diese Informationen aus Deinen Screenshots und dem bisherigen Code, letztendlich musst Du wissen, wie Dein Inhalt gemeint ist, aber überleg Dir das mal, ob Du hier wirklich tabellarische Daten hast, oder ob Du die Tabelle nur zu Layoutzwecken missbrauchst.
                      Aussehen soll es ja wie folgt:
                      ----------------------------------------------------------------
                      | | Wert (Beschreibung) | Wert (Status / als Ampel) | |
                      ----------------------------------------------------------------
                      | | Standort/PLZ | Wert | | |
                      ----------------------------------------------------------------
                      | | Start | Wert | | |
                      ----------------------------------------------------------------
                      | | Laufzeit | Wert | | |
                      ----------------------------------------------------------------
                      | | Art | Wert | | |
                      ----------------------------------------------------------------
                      | | Aufgabenbeschreibung | |
                      ----------------------------------------------------------------
                      | | Wert | |
                      ----------------------------------------------------------------

                      Wert steht dabei immer für Daten aus meiner Datenbank und die Leerzellen sollen auch Leerzellen sein.

                      Comment


                      • #12
                        selbst eine Umstellung auf

                        <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

                        hat nicht wirklich was gebracht.

                        Das kommt also davon, wenn man in seiner Ausbildung nichts beigebracht bekommt, sondern sich alles selbst aneignen muss - nur Stress im späteren Arbeitsleben

                        Comment


                        • #13
                          Originally posted by hamburger_1983 View Post
                          Die Spaltenüberschriften sind in dem Fall nicht über den dazugehörigen Daten, sondern links davon:
                          Dein Code hat aber keine Spaltenüberschriften.

                          Falsch ausgezeichnet = Ohne Spaltenüberschrift?
                          Was es für mich schwierig macht, DIr zu antworten ist, dass Du Aussehen und Semantik miteinander mischst. Das eine hat mit dem anderen ncihts zu tun. Die Auszeichnung in HTML hat primär nichts damit zu tun, wie es später aussehen soll, genauso, wie das geplante Aussehen nicht ausschlaggebend dafür ist, welches Tag Du verwendest.

                          Das Tabellenlayout wurde von meinem Chef so vorgegeben
                          Wuuaaahhhh.

                          und ich soll das umwandeln.
                          Na, dann mach das :-)

                          Im Gegensatz zu mir hat er allerdings nie in dem Bereich Programmierung gelernt
                          Habe ich auch, daher weiß ich auch, dass wir hier nicht im Geringsten über Programmierung sprechen. Weder HTML noch CSS haben auch nur im Entferntesten mit Programmierung zu tun. Nicht jede "Computersprache" ist auch gleich eine Programmiersprache.

                          und lässt sich auch nicht ausreden, dass nicht alles genauso klappt wie er es sich vorstellt, denn es MUSS funktionieren.
                          Man kann sein Glück nicht immer erzwingen.

                          Aussehen soll es ja wie folgt:
                          Nun, ich sprach in den letzten Beiträgen von mir von der Semantik, nicht vom Aussehen.

                          Prinzipiell könnte man Deine Daten schon als Tabelle auszeichnen, so wie Du sie jetzt hier darstellst.

                          Dein Doctype ist übrigens immer noch falsch. Jetzt verwendest Du XHTML 1.0 Transitional (immer noch Transitional!?), aber immer noch die DTD von Strict.

                          Das kommt also davon, wenn man in seiner Ausbildung nichts beigebracht bekommt, sondern sich alles selbst aneignen muss - nur Stress im späteren Arbeitsleben
                          Ich habe während meiner Ausbildung zum DV-KFM Anfang der 90er Jahre Festplattenstapel mit einem Durchmesser von 50cm und einer Dicke von 30cm und etlichen Kilogramm Gewicht gezeigt bekommen.
                          Mein HTML-/CSS-Wissen habe ich mir auch selbst angeeignet. Das funktioniert schon...wenn man die richtigen Quellen hat ;-)

                          Ich persönlich hätte jetzt gerne einen Link zur Seite. Hast Du schonmal nach den Tabellen-Bugs vom IE gegooglet?

                          Comment

                          Working...
                          X