2017-05-30 9 views
0

Ich habe Daten kommen und ich parse es in einer Tabelle auf einer Webseite. Es gibt 3 Zellen nebeneinander. (Zelle 0,0: Zelle 0,1: Zelle 0,2)Html Tischbreite mit CSS

Ich versuche es so zu machen, dass die Zellen gleichmäßig über das div verteilt werden, so dass der Text der ersten Zelle linksbündig ausgerichtet wird ist ausgerichtet Mitte und letzte Zelle ist rechts ausgerichtet.

Ich habe für CSS folgendes versucht

td { 
 
    width: calc(100%/3); 
 
}
<table border=1 style="border: 1px red dashed; width: 250px;"> 
 
<tr> 
 
<td>first</td> 
 
<td>second with wider contents</td> 
 
<td>third</td> 
 
</tr> 
 
</table> 
 

 
<table border=1 style="border: 1px blue dashed; width: 250px;"> 
 
<tr> 
 
<td>first</td> 
 
<td>second</td> 
 
<td>third with wider contents</td> 
 
</tr> 
 
</table>

Es gibt mir nicht die Ausgabe, die ich suche. Was ich versuche zu tun ist ich mehrere Tabellen auf einer Seite haben und wollen, dass die Zellen den ganzen Weg hinunter

ausgerichtet werden
+0

Willkommen bei Stack-Überlauf! :) Können Sie ein Snippet bereitstellen? – Strernd

+2

'Breite: calc (100%/3);' BTW warum brauchen Sie 'calc'? Es ist eine Konstante, das Ergebnis der Operation ist 33%, warum verwenden Sie nicht stattdessen "Breite: 33%"? – BackSlash

+1

Zusätzlich zu einem Ausschnitt (und/oder Geige) können Sie erweitern, was Sie meinen, indem Sie mir nicht die Ausgabe geben, nach der ich suche? Kannst du uns zeigen, was du gerade machst und wie das Ergebnis vom gewünschten/erwarteten Ergebnis abweicht? – Adrian

Antwort

1

Setzen Sie Ihre Tabelle auf die volle Breite des Divs, in dem es verschachtelt ist?

Zum Beispiel:

div { 
    width: 300px; 
} 

table { 
    width: 100%; 
    border: 1px solid black; 
} 


td { 
    width: calc(100%/3); 
    border: 1px solid black; 
} 

gemacht Genau dies schnell, ich denke, das ist das, was Sie suchen: https://jsfiddle.net/nsxLfv00/

+1

Das war die Antwort, mein Tisch war nicht auf die volle Größe des div – Cody

0

Wenn Sie die Ausrichtung des Inhalts in den drei Zellen, die die n-th child css selector

verwenden festlegen möchten
td:nth-child(1){ 
    text-align: left; 
} 

und dementsprechend für die mittlere und die rechte Spalte.

-1

Während es in reinem CSS möglich ist, würde ich Ihnen Bootstrap, Flexbox oder ein beliebiges Grid Framework empfehlen, um dies einfach zu erreichen. In BS wäre es so etwas wie:

<div class=container> 
    <div class="row"> 
    <div class="col-sm-4"> 
     Your first cell content 
    </div> 
    <div class="col-sm-4"> 
     second 
    </div> 
    <div class="col-sm-4"> 
     third 
    </div>  
    </div> 
</div> 

Sie können natürlich Ihre Tabellenstruktur einfügen, wenn Sie benötigen.

+1

Bootstrap für dieses Problem ist Overkill. OPs gaben keine Hinweise darauf, dass sie ein CSS-Framework verwenden. Plus, OP muss vielleicht lernen, wie man Bootstrap verwendet und könnte Tage auf das Problem statt Minuten verbringen. – amphetamachine

+0

@amphetamachine: Auch wenn Sie in diesem Punkt recht haben, wurde nicht erwähnt, ob es ein kleines oder großes Projekt war. Es passiert sehr oft, dass freiberufliche Backend-Entwickler diese Frameworks nicht kennen, wenn sie zu Frontend-Projekten wechseln. Und ernsthaft, das Lernen von BS ist nicht wie das Lernen von node.js, sobald man sich an die Dokumentation hält ... – GwadaKing