2010-09-24 2 views
4

У меня есть таблица с переменным числом столбцов, которую я хочу разместить в фиксированной ширине div.Таблица не будет переполняться

Я хочу, чтобы столбцы таблицы имели фиксированную ширину, а таблица переполнялась горизонтально внутри div, если она становится слишком широкой.

Однако таблица, по-видимому, изменяет размер, чтобы соответствовать внутри div.

<style> 
table,td{ 
    border:1px solid black; 
} 
</style> 
<div style="overflow:auto;width:500px;border: 1px solid red"> 

<table> 
<tr> 
    <td style="width:100px">a</td> 
    <td style="width:100px">a</td> 
    <td style="width:100px">a</td> 
    <td style="width:100px">a</td> 
    <td style="width:100px">a</td> 
    <td style="width:100px">a</td> 
    <td style="width:100px">a</td> 
</tr> 
</table> 

</div> 

Я могу взломать это, установив таблицу на фиксированную ширину больше, чем div. Но таблица имеет переменное количество столбцов, поэтому я бы предпочел не делать этого.

Есть ли лучший способ?

Спасибо за любые предложения.

+0

Хммм ... Я действительно не вижу простое решение для этого. Точка таблицы такова, что браузер делает все тяжелые подъемы (т. Е. Изменяет размеры ячеек, красиво подбирает таблицу в любое пространство, доступное и т. Д.), Поэтому, если вы не определяете размер, тогда браузер будет просто заставьте таблицу в это пространство для вас. –

ответ

0

Вы должны установить явную ширину в таблице (для этого, конечно, используйте CSS). Предположительно, если столбцы генерируются динамически, было бы слишком сложно вычислять ширину динамически. Вам придется использовать встроенный CSS, но, ну, это правильный случай.

+0

Ну ладно, явная ширина тогда ... – Chris

1

Вы можете использовать

<table> 
<tr> 
    <td style="min-width:100px;max-width:100px">a</td> 
    <td style="min-width:100px;max-width:100px">a</td> 
    <td style="min-width:100px;max-width:100px">a</td> 
    <td style="min-width:100px;max-width:100px">a</td> 
    <td style="min-width:100px;max-width:100px">a</td> 
    <td style="min-width:100px;max-width:100px">a</td> 
    <td style="min-width:100px;max-width:100px">a</td> 
</tr> 
</table> 

Но я мог бы иметь проблемы для IE < 8.

+0

Unfortunatley Мне нужно поддерживать IE6 и IE7 тоже – Chris

+0

Да, может быть, хорошая идея ... тогда используйте решение colithium;) –

Смежные вопросы