2012-03-08 5 views
0

Я пытаюсь установить ширину столбца таблицы только 200px или 10%. Однако, когда я заполняю данные из базы данных, столбец, кажется, игнорирует ширину столбца и расширяет его настолько, насколько это возможно. Вот моя таблица html.setup table column width

<table> 
<thead> 
    <tr> 
     <th><a href='#'>City</a></th> 
     <th width='200' class='table_width'><a href='#'>name</a></th> 
     <th><a href='#'>Agent</a></th> 
     <th>... 
    //I have tried class and width attribute. both don't work. 
    </tr> 
</thead> 
<tbody> 
     <tr> 
      //these column data were popluated from database 
      <td><?= $row->city; ?></td> 
      <td width='200' class='table_width'><?= $row->_name; ?></td> 
      //ignore the width and expand the table cell. 
      <td><?= $row->agent; ?></td> 
      <td>... 

     </tr> 

ответ

2

Вы хотите использовать word-wrap:break-word;.

http://jsfiddle.net/RF4F6/1/

HTML

<table> 
    <thead> 
     <tr> 
      <th>Col 1</th> 
      <th>Col 2</th> 
      <th>Col 3</th> 
      <th>Col 4</th> 
      <th>Col 5</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td>Normal Width</td> 
      <td>Normal Width</td> 
      <td class="forcedWidth">hiThisIsAreallyLongStringThatWillHaveToWrapAt200PixelsOrI'llBeUnhappyAndYouWon'tLikeMeWhenI'mUnhappy.</td> 
      <td>Normal Width</td> 
      <td>NormalWidth</td> 
     </tr> 
    </tbody> 
</table> 

CSS

table td{ 
    padding:.5em; /* Not essential for this answer, just a little buffer for the jsfiddle */ 
} 

.forcedWidth{ 
    width:200px; 
    word-wrap:break-word; 
    display:inline-block; 
} 
+0

Спасибо Металл. Я пытался, но все еще не работал. Ширина ячейки таблицы все еще расходуется даже в вашей демонстрации. +1 хотя. – FlyingCat

+0

Упс, попробуйте обновленный код. – MetalFrog

+0

Очень приятно! Большое спасибо!. – FlyingCat

2

Это стандартное поведение ячейки таблицы.

Один из способов сделать это поместить DIV внутри ваших клеток с style="width: 200px; overflow-hidden;"

+0

Я пытался, но не везет. Я думал, что переполнение - это высота, а не ширина. Благодарю. +1 – FlyingCat

1

table-layout: fixed Использование для таблицы заставит браузер поддерживать заданные размеры.

+0

нет удача. Спасибо хоть. +1 – FlyingCat

+0

Ах, для 'table-layout: fixed' для работы, вы также должны указать точную ширину для самой таблицы. См. Http://jsfiddle.net/vVN2P/ –

+0

Исправьте меня, если я ошибаюсь. Кажется, что ваш код только ограничивает ширину ячеек, но не содержимое. – FlyingCat