2017-10-01 2 views
0

Ich versuche, sowohl die Tabelle Tow der Tabelle eins und Tabelle drei zu bekommen in der Breite übereinstimmen - zur Zeit, die letzte Zelle nicht. Der Grund für die beiden Tabellen sind feste Header in Tabelle 1 und scrollbarer Überlaufinhalt für Tabelle 2. Dieser Ansatz hat in der Vergangenheit für mich funktioniert und ich kann einfach nicht herausfinden, was in diesem Beispiel anders ist, um diesen Fehler zu erzeugen.Tabelle Zeile letzte Zelle falsch Größe

Below is an image of how it appears on the page

#table_wrapper1 { 
 
    position: absolute; 
 
    top: 250px; 
 
    left: 20px; 
 
    height: 47px; 
 
    width: 500px; 
 
} 
 

 
#table1 { 
 
    table-layout: fixed; 
 
    position: absolute; 
 
    display: table; 
 
    font-size: 0.7em; 
 
    border: solid 1px; 
 
    z-index: 2; 
 
    width: 100%; 
 
    background-color: #F7F7F7; 
 
} 
 

 
#table_wrapper2 { 
 
    position: absolute; 
 
    top: 278px; 
 
    left: 20px; 
 
    width: 500px; 
 
    overflow: scroll; 
 
    height: 150px; 
 
} 
 

 
#table2 { 
 
    table-layout: fixed; 
 
    position: absolute; 
 
    display: table; 
 
    font-size: .7em; 
 
    border: solid 1px; 
 
    z-index: 2; 
 
    width: 100%; 
 
    background-color: #F7F7F7 
 
} 
 

 
td { 
 
    padding: 4px; 
 
    border: solid 1px black; 
 
    background-color: #FFF4C6; 
 
    vertical-align: middle; 
 
    text-align: center; 
 
} 
 

 
th { 
 
    padding: 6px; 
 
    Border: solid 1px black; 
 
    background-color: #BB8A76; 
 
    vertical-align: middle; 
 
    text-align: center; 
 
}
<div id="table_wrapper1"> 
 
    <table class="table" id="table1"> 
 
    <thead> 
 
     <tr> 
 
     <th>Unit code</th> 
 
     <th>Description</th> 
 
     <th>Delete unit</th> 
 
     <th>Add new unit</th> 
 
     </tr> 
 
    </thead> 
 
    <tbody></tbody> 
 

 
    </table> 
 
</div> 
 

 
<div id="table_wrapper2"> 
 
    <table class="table" id="table2"> 
 
    <thead></thead> 
 
    <tbody> 
 
     <tr> 
 
     <td><input class="unit <?php echo $class;?>" type="text" name="unit_code[]" value="<?php echo @$_POST['unit_code'][0]?>"></td> 
 
     <td><textarea cols="10" rows="3" class="<?php echo $class;?>" name="unit_description[]"><?php echo @$_POST['unit_description'][0]?></textarea></td> 
 
     <td><img title="remove unit" class="remove_row" src="../images/exit.png"> </td> 
 
     <td><img title="add more units" class="add_row" src="../images/add-resource.png"></td> 
 
     </tr> 
 
    </tbody> 
 
    </table> 
 
</div>

+0

Wie hast du das schon mal zum Laufen gebracht? Das Problem ist, dass die Bildlaufleiste 'overflow: scroll;' eine Bildlaufleiste auf der rechten Seite hinzufügt, die offensichtlich die Größe der Spalten in der Tabelle ändert – FluffyKitten

+0

Sie benötigen 2 Tabellen, um die "feste Kopfzeile" beim Scrollen zu bekommen? – levi

Antwort

0

Es sieht aus wie das Problem der overflow: scroll; sein könnte. Das zu entfernen, scheint an meinem Ende zu funktionieren.

Edit: Leider werden Sie in diesem Problem mit dem overflow: scroll aufgrund der Scrollbar weiterhin Platz einnehmen. Sie könnten versuchen, eine negative Rechtspolsterung auf Ihren Tabellenkörperwrapper anzuwenden, aber Sie werden dann auf Browserkompatibilitätsprobleme stoßen. Vielleicht könntest du auch den overflow: scroll auf den oberen Wrapper anwenden? Es wäre nicht schön, aber es könnte trotzdem funktionieren.

+0

Aber das Entfernen, bricht die Funktionalität - der ganze Zweck von 2 Tabellen war, so dass der zweite könnte gescrollt werden. – FluffyKitten

+0

Leider werden Sie dieses Problem mit dem 'overflow: scroll' weiterverfolgen, da die Bildlaufleiste natürlich Platz beansprucht. Sie könnten versuchen, eine negative Rechtspolsterung auf Ihren Tabellenkörperwrapper anzuwenden, aber Sie werden dann auf Browserkompatibilitätsprobleme stoßen. Vielleicht könnten Sie versuchen, den 'overflow: scroll' auch auf den oberen Wrapper anzuwenden? Es wäre nicht schön, aber es könnte trotzdem funktionieren. –

+0

Es ist nicht meine Frage (bitte überprüfen Sie den Namen des Posters/Kommentators, bevor Sie jemanden ansprechen), ich habe nur darauf hingewiesen, warum Ihre Antwort das Problem des OP nicht behebt. Sie behaupten, dass es funktioniert hat, also warte ich auf ihre Antwort, also sieh zu, wie sie es vorher geschafft haben. – FluffyKitten

Verwandte Themen