Problem mit Tabellenhintergrund

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit Tabellenhintergrund

    Guten Morgen,
    erstmal sorry, dass ich mit einem solch trivialen Problem komme, jedoch liefen alle meine Suchbegriffe ins Leere.

    Folgendes: Ich habe eine Layout-Tabelle mit 3 Zeilen und 3 Spalten. Die obere und untere Zeile hat eine definierte Höhe (40px) - die linke und rechte Spalte eine definierte breite (30px). Die mittlere Spalte dient als "Contentbereich" und ist zusammengefasst.

    Das Problem bereitet der IE bei der Verteilung der Höhen der Zeilen. Der FF "füllt" die mittlere Zeile (die keine festgelegte Höhe hat) so auf, wie es geplant war. Der IE jedoch passt ausgerechnet die obere und untere Zeile so an, dass es passt, was jedoch den Hintergrund der mittleren Zeile, der sich mit zunehmenden Inhalt ausdehnen soll, falsch erscheinen lässt.

    Hier Bilder zur Verdeutlichung:
    FF:


    IE:


    Die Ausdehnung der oberen und unteren Zeile habe ich zur Veranschaulichung umrahmt. Hier das relevante Listing:
    PHP-Code:
    /* Contenttable */
                
    table#contenttable {
                    
    width760px
                    
    border-collapsecollapse;
                    
    margin20px auto 20px auto;
                }
                
    table#contenttable td.top {
                    
    background-imageurl(img/bg_top.gif);
                    
    background-repeatrepeat-x
                    
    background-positiontop;
                    
    height40px
                    
    width30px;    
                    
    border1px solid #c00;
                
    }
                
    table#contenttable td.bottom {
                    
    background-imageurl(img/bg_bottom.gif); 
                    
    background-repeatrepeat-x;
                    
    background-positionbottom;
                    
    height40px
                    
    width30px;    
                    
    border1px solid #c00;
                
    }
                
    table#contenttable td.middle {
                    
    background-imageurl(img/bg_middle.gif); 
                }
                
    table#contenttable td#content {
                    
    background-color#fff;
                    
    border1px solid #000;
                

    PHP-Code:
            <!--Contenttable begin-->
            <
    table id="contenttable">
                <
    tr>
                    <
    td class="top"></td>
                    <
    td id="content" rowspan="3">
                        
                    <!--
    Content begin-->    
                        <
    p>Lorem Ipsum blabla..</p>
                    <!--
    Content end-->    
                        
                    </
    td>
                    <
    td class="top"></td>
                </
    tr>
                <
    tr>
                    <
    td class="middle"></td>
                    <
    td class="middle"></td>
                </
    tr>
                <
    tr>
                    <
    td class="bottom"></td>
                    <
    td class="bottom"></td>
                </
    tr>
            </
    table>
    <!--
    Contenttable end--> 
    Irgendwelche Ideen? Danke im Voraus!

  • #2
    tippe mal auf den ersten blick auf das fehlerhafte box-model beim ie (stichwort hier margin und padding). such mal bei google nach dem entsprechenden hack.

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Hab mir das mal angeguckt, jedoch sehe ich da keinen Zusammenhang zu meinem Problem mit dem fehlerhaften Auffüllen der Tabelle. Kann jemand weiterhelfen?

      Kommentar


      • #4
        gib der TD.middle doch mal ne height, bzw den umliegenden (oben und unten) TDs ne height.
        Um Sicher zu gehen das es nicht am BoxModel liegt, DocType richtig setzen im IE6 - <6 ist es wirklich eklig.

        Der IE hat generell ein Problem - nämlich, das er height/width wie min-height/min-width behandelt.

        Um nur dem IE im CSS etwas mitzuteilen kann man folgendes benutzen:
        PHP-Code:

        /* Alle Browser */
        body {background-colorred;}

        /* Nur IE */
        *html body {background-colorblue;}; 
        Die bessere Methode ist da allerdings mit
        PHP-Code:
                <!--[if IE]>
                    <
        style type="text/css" media="screen">
                        
        body {background-colorblue;}
                    </
        style>
                <![endif]--> 
        zu machen.


        EDIT:
        Oh, das mit der Höhe für oben und unten haste ja schon gemacht....

        Kommentar


        • #5
          alles in alle empfehle ich dir es aber anders zu machen...

          Warum überhaupt dafür ne Tabelle???

          Ginge das nicht mit DIVs viel besser?
          http://de.selfhtml.org/css/layouts/mehrspaltige.htm

          Kommentar


          • #6
            Also ich habe der mittleren Zelle nun eine Höhe gegeben und es klappt, ABER: ich kann ihr keine feste Pixelangabe geben, weil die eigentliche Ausdehnung anhand des Inhaltes festgemacht werden soll - kann also zwischen 500px und 5000px variieren.

            Als Doctype habe ich "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">" verwendet, da ich strict wegen typo3 nicht nehmen kann.

            An eine Umsetzung mittels Div-Containern hatte ich auch gedacht, jedoch bin ich gescheitert und habe mich aufgrund des aufwand/nutzen-verhältnisses für eine Tabellenumsetzung entschieden... funktioniert ja auch fast

            Aber wenn du es versuchen möchtest - gerne. Ich bin am Hintergrund (den vertikalen Schwarzen Linien gescheitert). So soll es aussehen:

            Kommentar


            • #7
              Mal ganz davon abgesehen das ich dir hier deinen code nicht schreibe... willst du wirklich so ein häßliches Layout nehmen? Ok, ist Geschmackssache - aber "ihhhh"... *G*

              Ließ doch bitte das hier nochmal...
              http://de.selfhtml.org/css/layouts/mehrspaltige.htm

              Und dann schau dir mal die "overflow" eigenschaft an.

              Im groben könnte man es so machen:
              Div ausenrum, 2 divs drin, relativ positioniert mit verschiedenen z-indexen. Aber das ist mit sicherheit nicht der beste weg.

              Das hier hilft dir vielleicht auch bei der Lösung deines Problems.
              http://www.jakpsatweb.cz/css/css-ver...-solution.html

              Kommentar


              • #8
                Um nochmal auf deine Tabelle einzugehn...

                ABER: ich kann ihr keine feste Pixelangabe geben, weil die eigentliche Ausdehnung anhand des Inhaltes festgemacht werden soll
                Der IE hat generell ein Problem - nämlich, das er height/width wie min-height/min-width behandelt.
                Was könnte ich mit diesem Satz gemeint haben???

                Kommentar


                • #9
                  http://wellstyled.com/css-minheight-hack.html
                  das hier vielleicht noch

                  Kommentar

                  Lädt...
                  X