2012-07-10 8 views
30

Wie kann ich die Tabelle mit zwei Spalten machen (Zellen) wie folgt aussehen:Wie wird die Tabellenzelle entsprechend dem Inhalt verkleinert?

  • Erste Zelle ist nach dem Inhalt
  • Die andere Zelle den Rest der Tabelle passt (breiter als beide zusammen Inhalt schrumpfen)

Beispiel:

<table style="width: 500px;"> 
    <tr> 
     <td>foo</td> 
     <td>bar</td> 
    </tr> 
</table> 

ich den Tisch müssen wie folgt aussehen:

.___________________________________________________________________________. 
| foo | bar   <a lot of space here>        | 
|_____|_____________________________________________________________________| 
          500 px total width 

Hinweis: Ich kenne die Breite von "foo" nicht, also kann ich nicht "50px", "10%" oder so etwas einstellen.

+0

setzen Sie eine Breite wie 10px .... z. ' foo' –

+0

Nun, es ist direkt am Ende meines Beitrags. Ich kenne die Breite der Zelle nicht, also kann ich sie nicht manuell einstellen. Ich brauche den Browser, um nach dem Inhalt zu verkleinern ("foo" in meinem Beispiel, aber es kann "fooooooooo" sein, das für 10px zu lang ist). –

+2

Auch wenn Sie eine Breite von 10px einstellen, wird die Zelle entsprechend dem Inhalt wachsen. Siehe hier: http://jsfiddle.net/7X4XT/2/ –

Antwort

34

Sie können die width der zweiten Zelle auf 100%

HTML:

<table> 
    <tr> 
     <td>foo</td> 
     <td class="grow">bar</td> 
    </tr> 
</table>​ 

CSS:

table { width: 500px; } 
.grow { width: 100%; }​ 

prüfen this fiddle aus.

+15

Dies funktioniert nur, wenn 'table-layout' in der Tabelle auf' auto' gesetzt ist. Dies ist die Standardeinstellung, aber es ist üblich, 'table-layout' auf' fixed' zu setzen, wodurch der 100% -Wert wörtlich genommen wird (die Zelle überspannt die gesamte Tabelle und alle Zellen überlappen sich). – Zenexer

2

Wenn die Gesamtgröße der Tabelle 500 Pixel beträgt und nicht überschritten wird, geben Sie td{max-width: 500px;} ein; Wenn der Minimalwert 500 Pixel beträgt, td {min-width: 500px;}; Sieh dir das an.

4

gesetzt

td{ 
max-width:100%; 
white-space:nowrap; 
} 

wird es ur Problem zu lösen ..

12

Ich weiß, das vor Jahren gefragt wurde. Das OP hat es wahrscheinlich schon gelöst. Aber das könnte für jemanden immer noch hilfreich sein. Also poste ich, was für mich funktioniert hat. Folgendes habe ich mit meinem gemacht. Ich setze die Breite auf fast Null, verkleinere sie und setze dann den Leerraum auf neu. Gelöst.

td { 
width:0.1%; 
white-space: nowrap; 
} 
+0

Danke. (+ 8 Zeichen) – Andrew

+2

Danke! Interessanterweise hat eine Breite von "0" keine Auswirkung, aber Ihre "0,1%" scheint ein netter Hack zu sein, um dies zu erreichen. –

+0

persönlich ging ich mit Breite: 1px. tolle Idee Nat! – SnailCoil

Verwandte Themen