CSS: установка максимальной ширины таблицы

Я создаю журналы приложений в html, и я наткнулся на довольно неприятную проблему. У меня есть следующий макет:

| Action | Result | File path           |

Например

| Copy | Success | C:\VeryVeryVeryLongF |
|      |         | ileName.txt          |

В столбцах 1 и 2 отображаются только короткие метки: их содержимое должно оставаться на одной строке. С другой стороны, столбец 3 может содержать очень длинные пути к файлам, которые должны охватывать несколько строк, если они не могут помещаться в одну строку.

Чтобы достичь этого, я использовал white-space: nowrap; для первых столбцов и white-space: normal; word-break: break-all; для последнего. Кроме того, таблица имеет width:100%.

Это отлично работает в Chrome и IE, но не в Firefox: Короче говоря, я не могу найти способ сказать Firefox 8.0, чтобы не увеличивать последний столбец таблицы, а вместо этого позволять текст span несколько строк. В моем предыдущем примере Firefox печатает

| Copy | Success | C:\VeryVeryVeryLongFileName.txt |

Текст в первых двух столбцах может меняться, поэтому я не могу установить их ширину вручную и использовать table-layout: fixed. Я также попытался установить max-width в таблице и обернуть его в div, но безрезультатно.

См. http://jsfiddle.net/GQsFx/6/ для примера в реальной жизни =) Как заставить Firefox вести себя как Chrome?

Ответы

Ответ 1

Будет ли это работать? Это похоже на работу с jsfiddle. Процент на основе первых двух столбцов, затем ширина авто третий, с табличным расположением: фиксировано в таблице.

http://jsfiddle.net/keithwyland/uuF9k/1/

.actions {
  width:100%;
  table-layout: fixed;
}

.actions tr td {
  white-space: nowrap;
  width: 15%;
}

.actions tr td:nth-child(3) {
  white-space: normal;   
  word-break: break-all;
  word-wrap: break-word;
  width: auto;
}

Ответ 2

используйте этот css

.actions {
width:100%;
}
.actions tr td:nth-child(3) {
 width:200px;
 word-wrap:break-word;
  display:inline-block;
}

Ответ 3

max-width допустим CSS2, но поддерживается только в NS7, Opera 7 и, возможно, Mozilla. Я не верю, что это поддерживается в IE 6.

Ответ 4

Попробуйте поставить width: auto;. Это позволит браузеру использовать необходимое пространство...

Ответ 5

это должно работать:

    .actions tr td:nth-child(3) {
         white-space: normal;
         word-break: break-all;
         max-width:200px;
     }

Ответ 6

Следующий CSS, похоже, заставит его работать для меня. Обратите внимание на добавление таблицы-макета: исправлено и использование word-wrap: break-word.

.actions {
    width:100%;
    table-layout:fixed;
}

.actions tr td {
    white-space: nowrap;
}

.actions tr td:nth-child(3) {
    white-space:normal;
    word-wrap: break-word;
}