Tabelle wird groesser als per width angegeben

Status
Nicht offen für weitere Antworten.

Dennis Wronka

Soulcollector
Ich gebe per width="500" die Breite der Tabelle an, jedoch wird die Tabelle je nach Inhalt dann doch groesser.
Kleiner wird sie nicht, jedoch soll sie halt auch nicht groesser werden.
Es werden halt mehrere Tabellen, je Kategorie eine, erstellt und mit Inhalt gefuellt. (fuer die, die mit dem PHP-Code nichts anfangen koennen). Aber das ist ja jetzt nebensaechlich, geht nicht um den PHP-Code, sonst haette ich das PHP-Board gewaehlt. ;)
Aus Design-Gruenden sollen die Tabellen natuerlich alle gleich breit sein, sieht ja sonst nicht aus.

PHP:
  $categories=mysql_query("select * from categories order by category",$db);
  while ($category=mysql_fetch_row($categories))
   {
    ?>
    <table border="1" width="500">
    <tr><th align="left" colspan="3"><? printf($category[1]); ?></th></tr>
    <tr><th align="left">Title</th><th align="left">URL</th><th align="left">License</th></tr>
    <?
    $linuxsofts=mysql_query("select * from linuxsoft where category='$category[0]' order by title",$db);
    while ($linuxsoft=mysql_fetch_row($linuxsofts))
     {
     ?>
     <tr>
     <td><? printf($linuxsoft[1]); ?></td>
     <td><a href="<? printf($linuxsoft[3]); ?>"><? printf($linuxsoft[3]); ?></a></td>
     <?
     $licenses=mysql_query("select * from licenses where id='$linuxsoft[4]'",$db);
     $license=mysql_fetch_array($licenses);
     ?>
     <td><a href="<? printf($license[2]); ?>"><? printf($license[1]); ?></a></td>
     </tr>
     <?
     }
    ?>
    </table><br>
    <?
   }
 
Versuch mal im td-Tag noch style="width:500px" anzugeben...Und wenn das nicht geht gib dem table-Tag dem gleichen Paramter an, anstatt mit width, mit style :)

Und wenn das dann immer noch nicht geht dann melde dich noch einmal :)
 
Bin auch schon am ueberlegen ob ich das td fuer die URL (das ist momentan mein Problemkind) nicht mit 'ner festen width nutze. Jedoch hab ich auch da die Befuerchtung, dass das einfach ignoriert wird wenn der Content laenger ist.
<table style="500"> macht alles nur kaputt. Jetzt ist jede Tabelle nur so lang wie noetig.
Oder meinst Du das als irgendwelche CSS-Eigenschaften?

Nachtrag: Hab grad mal bei selfhtml geschaut, aber sowas wie ein maxwidth-Attribut scheint's ja nicht zu geben. Das waer jetzt echt praktisch. :)

Ich denk mal, der wuerde sich an die 500 Pixel halten wenn in der URL ein Leerzeichen waere wo 'n Umbruch sinnvoll stattfinden koennte. Das ist aber bei einer URL nicht der Fall, und darum macht der anscheinend garkeinen Umbruch.
 
Zuletzt bearbeitet:
Geht es nicht wenn du den gesagten Parameter in das TD-Tag einbaust Ich meinte natürlich style="width:500px" ;) Da du ja auch sagen musst welchen Style du nun anwenden möchtest, in diesem Fall die breite...:)
 
Da ein URL bekanntlich keine Leerzeichen enthält, wird er auch nicht umgebrochen. Da kannst du Styles definieren wie du willst. Schneid dir am besten den URL per PHP zurecht:

PHP:
echo substr($URL,0,60);
$IsLonger = (strlen($URL) > 60) ? 1 : 0;
if ($IsLonger == 1){echo " (...)";}
 
Das werd ich mal ausprobieren, aber heute nicht mehr. Ist schon zu spaet, muss bald mal in's Bett.
Aber vielen Dank fuer den Tip. Werd ich morgen auf jeden Fall mal checken.
Ist ja auch insofern unproblematisch, da die URL ja nicht einfach nur Text sondern 'n Link auf eben diese URL ist. Der User braucht ja nur draufklicken um dorthin zu kommen und nicht per Copy&Paste den Kram in die Addressleiste packen.
 
@Daniel:
Danke fuer den Tip, hab's damit loesen koennen.
Damit es was besser aussieht trenn ich den String aber nicht einfach an 'ner bestimmten Stelle, sondern bei einem /
Der Code dazu sieht dann so aus:
PHP:
$length=strlen($linuxsoft[3]);
if ($length>40)
 {
  $slashpos=strpos($linuxsoft[3],"/",35);
  $urlpart1=substr($linuxsoft[3],0,$slashpos+1);
  $urlpart2=substr($linuxsoft[3],$slashpos+1,$length-($slashpos+1));
  printf($urlpart1." ".$urlpart2);
 }
else
 {
  printf($linuxsoft[3]); 
 }
 
Status
Nicht offen für weitere Antworten.
Zurück