Я создаю компонент сетки для собственных нужд с сортируемыми столбцами, строками и т. Д. Существующие из них либо не соответствовали моим потребностям, либо были слишком тяжелыми. Я только начал работать с изменяемым размером столбцов, когда неожиданно WebKit поразил меня необъяснимой аномалией. В то время как макет таблицы: исправлено, отлично работало во всех других браузерах (даже IE) Safari / Chrome доставлял мне головную боль.
Вот что я написал до сих пор: TSort Embriyo
Как вы видите, он создает две таблицы - одну для заголовков и одну для тела и несколько оберток вокруг них. Затем он пытается использовать table-layout: fixed , поскольку он лучше соответствует концепции динамической сетки. Для макет таблицы: фиксированный важно, чтобы таблица имела ширину, в дополнение к этому все мои ячейки (td / th) имеют переполнение : скрыто , white- пробел: nowrap и переполнение текста: многоточие , чтобы лучше имитировать вид сетки.
Теперь «ошибка» - обе таблицы построены одинаково, ширина ячеек и таблицы рассчитывается и задается одной и той же функцией. «Ошибка» необъяснима, потому что подход, который я использую, работает, как и ожидалось, для верхней таблицы, но не для нижней. В основном это действует так, как будто у меня нет назначенной ему ширины. Но вы можете видеть в Web Inspector, что он определенно имеет ширину ... Так что ... ага?
Я попробовал все, я поменял местами функции, я удалил верхнюю таблицу, я попытался построить нижнюю таблицу так, как я строил верхнюю таблицу. Но это продолжает терпеть неудачу. Однако когда я копирую / вставляю сгенерированный табличный код в страницу напрямую, он начинает работать. Так что я предполагаю, что у этого есть что-то с динамическим характером стола. Но почему тогда он работает на верхнем столе?
Мне удалось избавиться от этой «ошибки», создав элемент таблицы с заранее заданной шириной. Но это не объясняет странное поведение, не так ли?