Табличные проблемы с WebKit - PullRequest
       15

Табличные проблемы с WebKit

0 голосов
/ 18 декабря 2008

У меня проблемы с отображением этого кода в браузерах WebKit (chrome / safari). Это хорошо выглядит в IE6, IE7 и FireFox.

<table width="100%">
    <tr>
        <td rowspan="2" style="vertical-align:middle;">
            <a href="http://http://{$smarty.const.DOMAIN}/company/a_cherry_on_top/line/gift_cards/?v=s2"><img src="/i/thumbnails/acotgc25sm.gif" alt="Gift Certificate"/></a>
        </td>

        <td style="vertical-align:middle;">
            <a href="http://{$smarty.const.DOMAIN}/article?a=2044" target="_top">Wishlist</a>
        </td>
        <td style="vertical-align:middle;">
            <a href="http://{$smarty.const.DOMAIN}/article?a=2125" target="_top">Link to Us</a>
        </td>
        <td style="vertical-align:middle;">
            <a href="http://www.shareasale.com/shareasale.cfm?merchantID=8362" target="_blank">Affiliate Program</a>
        </td>
        <td style="vertical-align:middle;">
            <a href="http://{$smarty.const.DOMAIN}/article?a=1521" target="_top">Privacy</a>
        </td>
        <td style="vertical-align:middle;">
            <a href="http://{$smarty.const.DOMAIN}/article?a=1395" target="_top">Guarantee</a>
        </td>

        <td rowspan="2" style="width:160px;">
            <script src="http://www.gmodules.com/ig/ifr?url=http://www.google.com/ig/modules/translatemypage.xml&up_source_language=en&w=160&h=60&title=&border=&output=js"></script>
        </td>
    </tr>
    <tr>
        <td style="vertical-align:middle;">
            <a href="http://{$smarty.const.DOMAIN}/article?a=3069" target="_top">About Us</a>
        </td>
        <td style="vertical-align:middle;">
            <a href="http://{$smarty.const.DOMAIN}/article?a=1467" target="_top">Shipping</a>
        </td>
        <td style="vertical-align:middle;">
            <a href="http://{$smarty.const.DOMAIN}/article?a=12342383" target="_top">Why Buy From Us</a>
        </td>
        <td style="vertical-align:middle;">
            <a href="http://{$smarty.const.DOMAIN}/article?a=1397" target="_top">Contact Us</a>
        </td>
        <td style="vertical-align:middle;">
            <a href="http://{$smarty.const.DOMAIN}/help" target="_top">Help</a>
        </td>
    </tr>
</table>

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

У кого-нибудь есть идеи, как заставить его отображаться так, как я хочу, в браузерах на основе WebKit?

Ответы [ 3 ]

1 голос
/ 20 июня 2009

У меня есть несколько рекомендаций для вас, но я не могу полностью ответить на ваш вопрос, потому что WebKit, кажется, прекрасно отображает ваш источник, когда я пытаюсь это сделать.

  1. Во-первых, возможно, вы можете изменить width="100%" на style="width:100%;" Возможно, в сочетании с другой разметкой это переводит браузер в режим причуд.
  2. Во-вторых, убедитесь, что у вас включен правильный тип документа и ваш код проверяется, или как минимум приближается. Тип документа, который я использовал при копировании и вставке кода, был строгим XHTML.

В противном случае, пожалуйста, опубликуйте исходный код всей страницы или просто ссылку на демоверсию. Даже скриншот поможет.

0 голосов
/ 26 сентября 2011

Пример правильного отображения в веб-наборе:

<table width="200" border="1">
  <tbody>
    <tr>
      <td rowspan="2" width="15">
        this is a very high rowspan 2 row that will thus be split over 2 rows, it prevents the second row from being formatted in height
      </td>
      <td>
        this should be big instead
      </td>
    </tr>
    <tr height="20">
      <td height="20">
        this row fails to size to 20 height on webkit
      </td>
    </tr>
  </tbody>
</table>

как вы можете видеть, левая часть отображается нормально, но правая часть должна отличаться, так как в верхнем ряду должно быть заполнено левое пространство, а в нижнем ряду установлена ​​высота 20 (как вы можете видеть высота и тд высота принимается во внимание веб-комплектом). это прекрасно работает во всех других браузерах

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

<html>
<head>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#pipnorowspan").height(function(){
    return $("#rcarowspan").height() - $("#piplowerrow").attr('height') + 2;
});
});
</script>
</head>
<body>
<table width="200" style="border-collapse:collapse; border:1px solid #000;" id="ertable">
  <tbody>
    <tr style="border:1px solid #000;">
      <td rowspan="3" width="15" id="rcarowspan" style="border:1px solid #000;">
        this is a very high rowspan 2 row that will thus be split over 2 rows, it prevents the second row from being formatted in height
      </td>
      <td id="pipnorowspan" style="border:1px solid #000;">
        this should be big instead
      </td>
    </tr>
    <tr height="20" id="piplowerrow" style="border:1px solid #000;">
      <td height="20" style="border:1px solid #000;">
        this row fails to size to 20 height on webkit
      </td>
    </tr>
  </tbody>
</table>
</body>
</html>
0 голосов
/ 05 января 2009

Я мог бы помочь больше с живым примером для тестирования, но вы можете попробовать добавить это к вашим tr тегам.

<tr style="height: 50%;">

Если вам нужно только два ряда, это приведет их к одинаковой высоте.

...