Высота столбцов HTML-таблицы; Работает в Firefox не в IE

У меня есть HTML-код, который отлично отображается в FireFox3 / Opera / Safari, но не в IE7. Фрагмент выглядит следующим образом:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<head></head>
    <body bgcolor = "#AA5566" >
    <table width = "100%">

      <tr>

        <td height = "37" valign = "top"><img style = "float:right;" border = "0" src = "foo.png" width = "37" height = "37"/></td>

        <td width = "600" rowspan = "2" >
          <table width = "600" height = "800"><tr><td><img src = "bar.jpg" width = "600" height = "800"/></td></tr></table>
        </td>

        <td height = "37" valign = "top"><img style = "float:left;" border = "0" src = "foo.png" width = "37" height = "37"/></td>

      </tr>

      <!-- This row doesnt fill the vertical space on IE7 //-->
      <tr>
        <td valign = "top" bgcolor = "#112233">&nbsp;</td>
        <td valign = "top" bgcolor = "#112233">&nbsp;</td>
      </tr>

    </table>
    </body>

Вторая строка не будет правильно заполнять вертикальное пространство, созданное средним столбцом первых строк (обратите внимание на rowspan = "2"). Вместо этого первые строки 1-го и 3-го столбцов расширяются вниз, хотя я установил их высоту на 37. На изображении ниже показано, что происходит в IE7 и Firefox3 ...

Высота столбцов HTML-таблицы; Работает в Firefox не в IE

Обновлено: добавлен тип документа HTML во фрагмент кода. Добавил скриншот.

Любая помощь приветствуется, спасибо :)

Декларацию какого документа вы используете?

Chris Porter 30.10.2008 20:11

Крис: только что добавил его во фрагмент кода.

QAZ 30.10.2008 20:16
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
2
5 235
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Я не совсем понимаю, почему это происходит. Какого макета вы пытаетесь достичь, действительно ли это должен быть стол? Не следует размещать страницы с таблицами, их следует использовать только для настоящих табличных данных.

Вы рассматривали возможность использования div?

Я добавил снимок экрана, чтобы объяснить это. Да, мне, вероятно, следует использовать DIV, но я бы предпочел не переписывать его, если я могу просто исправить эту ошибку.

QAZ 30.10.2008 20:32

Пропустите его через валидатор, и я уверен, что вы подойдете немного ближе.

На самом деле - то, что вы видите, является нормальным поведением IE: добавьте border = "1" в вашу основную таблицу, и она покажет вам, что происходит, немного яснее.

Правильный ответ: не создавайте макет страницы с помощью таблиц.

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

Хакерский ответ будет: если ячейки слева и справа должны быть ровно 37 пикселей в высоту, вам придется добавить две дополнительные вложенные таблицы в левую и правую ячейку.

Ответ принят как подходящий

Что, если вы попробуете вот так:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<head></head>
    <body bgcolor = "#AA5566" >
    <table width = "100%" border='1'>

      <tr>

        <td valign = "top">
            <table bgcolor = "#112233" height = "37" width='100%'><tr><td>asdf</td></tr></table><br />
            Other content
        </td>

        <td width = "600" rowspan = "2" >
          <table width = "600" height = "800"><tr><td>asdf</td></tr></table>
        </td>

        <td valign = "top">
            <table bgcolor = "#112233" height = "37" width='100%'><tr><td>asdf</td></tr></table><br />
            Other content
        </td>

      </tr>



    </table>
    </body>

Другие вопросы по теме