2010-02-19 2 views
1

У меня есть таблица с 1 строкой и 5 колонками. Я установил ширину этих 5 столбцов на определенные известные значения (150 пикселей, 200 пикселей и т. Д.). Я также задал левый край для каждого из них.Как выровнять по левому краю все ячейки таблицы, но последние?

Я хочу, чтобы таблица расширялась и занимала всю ширину своего родителя. Итак, я установил его ширину на 100%. Когда таблица шире, чем объединенная ширина и поля 5 столбцов, она заставляет их распространяться по таблице, оставляя промежутки между ними.

Но, я хочу, чтобы эти 5 столбцов оставались слева.

Чтобы достичь этого, я добавил 6-й столбец и установите его ширину авто, в надежде, что он будет правильно нажать первые 5 влево и занять оставшееся пространство. Он работает в Firefox и Chrome. Но это не работает в IE. В IE 5 столбцов по-прежнему равномерно распределяются по всей таблице.

Я попытался установить ширину 6-й колонки на 100% вместо автоматического. Но проблема в том, что он уничтожает левые поля из 5 столбцов! Например, столбец 100% нажимает на 5 столбцов слишком много слева, чтобы их поля исчезли!

Я хочу, чтобы отступы, маржа и ширина первых 5 столбцов поддерживались, но сдвигались влево, но таблица должна расширяться так же широко, как ее родитель.

В таблице есть фоновое изображение, которое должно отображаться за пределами 5 столбцов.

Некоторые могли бы предположить, что я двигаюсь фон родительского стола, но я не могу - принять мое слово: D

Как я могу получить эту работу в Firefox, Chrome и IE?

Спасибо.

Вот эта ссылка: http://test.greedge.com/table/table.php. Попробуйте в FF и IE

+0

Посмотрите, вот почему я смеюсь, когда люди говорят, что макеты CSS сложны, и что вы должны просто использовать таблицы. Я никогда не мог понять правила, которые используют таблицы, чтобы выложить себя. –

+0

@Paul это еще будет * путь * сложнее выложить в чистом CSS. –

+0

Некоторые аспекты были бы (чтобы каждая ячейка была той же высоты, что и другие). Я полагаю, что горизонтальная компоновка будет работать: пять элементов, размещенных слева с фиксированной шириной, и дают «переполнение: скрыто» до шестого. Это определенно не так очевидно, как таблица. –

ответ

1

Edit: Решение простое: Добавить   в одну тд в таблице в последнем столбце. Ячейка таблицы лежащей таблицы не отображается, потому что она не содержит ничего. Таким образом, последняя ячейка также не содержит ничего, не получает визуализацию, а другие ячейки должны разделить доступное пространство среди них.

Я не знаю, какой браузер делает правильные вещи здесь, все IE (включая 8) не отображают столбец, все остальные браузеры делают.

Старый ответ:

Столбцы не должны иметь поля в соответствии с the CSS 2.1 spec:

маржинальной-направо, маржа налево

Применяется: ко всем элементам, за исключением элементы с табличными типами отображения, отличными от таблицы, таблицы и строки

Вам нужно будет использовать прокладку внутри ячеек.

Автоматический столбец должен работать в любом браузере в описываемом вами сценарии (просто не указывайте ширину). Можете ли вы опубликовать онлайн-пример таблицы, которая не работает?

+0

Мне может потребоваться некоторое время, чтобы опубликовать онлайн-версию, на которую вы можете взглянуть. Я дам вам знать, когда я закончу настройку. – user266803

+0

@iam все в порядке. Прежде чем вы это сделаете, возможно, повторите проверку во второй раз, независимо от того, указали ли вы все фиксированные ширины 'td', а на 6-й - нет ширины. Это должно работать нормально. –

+0

@iam также сначала удаляет поля, может быть, IE (ошибочно) интерпретирует их. –

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