Oleg Oshmyan (Chortos-2) (astiob) wrote,
Oleg Oshmyan (Chortos-2)
astiob

Category:

Ещё несколько вещей, которые не умеет или делает плохо CSS

CSS не предусматривает возможность сделать клетку таблицы (или всю таблицу, но тем не менее всю таблицу можно сделать в движках, отличных от Gecko, где это не удосужились реализовать за десять лет жизни баг-репорта — да, когда-то это вполне официально был баг) содержащим блоком её абсолютно спозиционированных потомков. А свойства width и height у клеток, рядов и столбцов таблиц действуют не так, как у всех других объектов, а вместо этого выполняют функции min-width и min-height.

Как следствие, клетку таблицы нельзя заставить заполнять всё пространство, остающееся от таблицы (размер которой задан) после расположения остальных клеток (чей размер тоже задан каким-то образом, не зависящим от клетки, которой следовало бы заполнить всё пространство), вне зависимости от её (клетки) содержимого. Можно лишь заставить занимать максимум из этого оставшегося пространства и размера содержимого либо фиксированный размер, запихав всё её содержимое в абсолютно спозиционированный div и выставив его top, right, bottom и left в auto (оно же значение по умолчанию). Опять же в последнем случае этот div создаст новый содержащий блок для своих абсолютно спозиционированных потомков, что, возможно (я не могу придумать пример), может быть нежелательно.

А, да: если вы думаете, что <td><div style="position: relative; width: 100%; height: 100%"><div style="position: absolute; width: 100%; height: 100%"> работает, то вы в чём-то, конечно, правы — в «Вебките» это действительно работает, — но согласно спецификации CSS 2.1 размер этой табличной клетки зависит от содержимого и поэтому у её детей width и height, указанные в процентах, автоматически заменяются на auto, что, разумеется, в конце концов даёт этим div’ам нулевой размер. И именно так это и работает в «Гекко» и «Престо». В «Трайденте» я не проверял.

…Были ещё вещи, но я их забыл.

Tags: css, html
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments