Я вижу похожие проблемы при определении высоты ячейки, и, безусловно, кажется, что таблица использует модель рамки, а не блока содержимого. Я сильно подозреваю, но на данный момент у меня нет доказательств, подтверждающих это, чтобы сохранить совместимость с макетом на основе таблиц. Например, если вы установите ширину 100% и границу или поле, у вас будут проблемы с прокруткой (при условии, что ваша таблица занимает все окно).
Это на самом деле является преимуществом модели рамки с рамками, так как трудно достичь 100% -100px с рамкой с содержимым, но здесь это тривиально. К счастью, с помощью CSS3 мы можем выбрать использование рамки для элементов уровня блока, что, возможно, должно было быть в первую очередь. Я помню, как однажды услышал, что IE5 реализовал рамку границ, поскольку это было в спецификации daft, которая затем изменилась.
Внимательное прочтение спецификации CSS относительно макета таблицы, вероятно, подтвердит, если это так.
Проблема, с которой я сейчас сталкиваюсь, заключается в том, что если я получаю ячейку высотой 200px, границей 10px и отступом 20px, а затем использую getCalculatedStyle (), браузер сообщает, что он имеет высоту 140px! Несмотря на то, что я специально установил высоту в 200 пикселей.
С уважением,
Allan