Dieter Jäger: Darstellung von Spalten im IE

Hallo erst einmal,
ich bastel gerade an meiner Webseite und habe folgendes Problem:

Im FF (Firefox) sieht das ganze gut aus. Im IE allerdings werden mir bei meiner Produkt auflistung keine Spalten angezeigt, sondern eine klobige Masse (Seitenhintergrund schimert nicht durch). Die Anordnung der einzelnen Posten ist zwar korrekt, aber die Trennung der einzelnen Felder fehlt.
Die css sieht so aus:

TABLE.productListing {
border:1px;
border-style: solid;
border-color: #FFCC66;
border-spacing: 1px;
}

.productListing-heading {
font-family: Verdana, Arial, sans-serif;
font-size: 12px;
background: #CC0000;
color: #FFFF00;
font-weight: bold;
}

Ich weiß mittlerweile, dass der IE das nicht interprtieren kann. Kann ich das in der css ändern oder muß ich in den Quelltext (php)?
Hier der Quelltext:
<?php
/*
$Id: product_listing.php,v 1.44 2003/06/09 22:49:59 hpdl Exp $

osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com Copyright (c) 2003 osCommerce

Released under the GNU General Public License
*/

$listing_split = new splitPageResults($listing_sql, MAX_DISPLAY_SEARCH_RESULTS, 'p.products_id');

if ( ($listing_split->number_of_rows > 0) && ( (PREV_NEXT_BAR_LOCATION == '1') || (PREV_NEXT_BAR_LOCATION == '3') ) ) {
?>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td class="smallText"><?php echo $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS); ?></td>
<td class="smallText" align="right"><?php echo TEXT_RESULT_PAGE . ' ' . $listing_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?></td>
</tr>
</table>
<?php
}

$list_box_contents = array();

for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {
switch ($column_list[$col]) {
case 'PRODUCT_LIST_MODEL':
$lc_text = TABLE_HEADING_MODEL;
$lc_align = '';
break;
case 'PRODUCT_LIST_NAME':
$lc_text = TABLE_HEADING_PRODUCTS;
$lc_align = '';
break;
case 'PRODUCT_LIST_MANUFACTURER':
$lc_text = TABLE_HEADING_MANUFACTURER;
$lc_align = '';
break;
case 'PRODUCT_LIST_PRICE':
$lc_text = TABLE_HEADING_PRICE;
$lc_align = 'right';
break;
case 'PRODUCT_LIST_QUANTITY':
$lc_text = TABLE_HEADING_QUANTITY;
$lc_align = 'right';
break;
case 'PRODUCT_LIST_WEIGHT':
$lc_text = TABLE_HEADING_WEIGHT;
$lc_align = 'right';
break;
case 'PRODUCT_LIST_IMAGE':
$lc_text = TABLE_HEADING_IMAGE;
$lc_align = 'center';
break;
case 'PRODUCT_LIST_BUY_NOW':
$lc_text = TABLE_HEADING_BUY_NOW;
$lc_align = 'center';
break;
}

if ( ($column_list[$col] != 'PRODUCT_LIST_BUY_NOW') && ($column_list[$col] != 'PRODUCT_LIST_IMAGE') ) {
$lc_text = tep_create_sort_heading($HTTP_GET_VARS['sort'], $col+1, $lc_text);
}

$list_box_contents[0][] = array('align' => $lc_align,
'params' => 'class="productListing-heading"',
'text' => ' ' . $lc_text . ' ');
}

if ($listing_split->number_of_rows > 0) {
$rows = 0;
$listing_query = tep_db_query($listing_split->sql_query);
while ($listing = tep_db_fetch_array($listing_query)) {
$rows++;

if (($rows/2) == floor($rows/2)) {
$list_box_contents[] = array('params' => 'class="productListing-even"');
} else {
$list_box_contents[] = array('params' => 'class="productListing-odd"');
}

$cur_row = sizeof($list_box_contents) - 1;

for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {
$lc_align = '';

switch ($column_list[$col]) {
case 'PRODUCT_LIST_MODEL':
$lc_align = '';
$lc_text = ' ' . $listing['products_model'] . ' ';
break;
case 'PRODUCT_LIST_NAME':
$lc_align = '';
if (isset($HTTP_GET_VARS['manufacturers_id'])) {
$lc_text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing['products_id']) . '">' . $listing['products_name'] . '</a>';
} else {
$lc_text = ' <a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_id']) . '">' . $listing['products_name'] . '</a> ';
}
break;
case 'PRODUCT_LIST_MANUFACTURER':
$lc_align = '';
$lc_text = ' <a href="' . tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $listing['manufacturers_id']) . '">' . $listing['manufacturers_name'] . '</a> ';
break;
case 'PRODUCT_LIST_PRICE':
$lc_align = 'right';
if (tep_not_null($listing['specials_new_products_price'])) {
$lc_text = ' <s>' . $currencies->display_price2($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</s>  <span class="productSpecialPrice">' . $currencies->display_price($listing['specials_new_products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</span> ';
} else {
$lc_text = ' ' . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . ' ';
}
break;
case 'PRODUCT_LIST_QUANTITY':
$lc_align = 'right';
$lc_text = ' ' . $listing['products_quantity'] . ' ';
break;
case 'PRODUCT_LIST_WEIGHT':
$lc_align = 'right';
$lc_text = ' ' . $listing['products_weight'] . ' ';
break;
case 'PRODUCT_LIST_IMAGE':
$lc_align = 'center';
if (isset($HTTP_GET_VARS['manufacturers_id'])) {
$lc_text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing['products_image'], $listing['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>';
} else {
$lc_text = ' <a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing['products_image'], $listing['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a> ';
}
break;
case 'PRODUCT_LIST_BUY_NOW':
$lc_align = 'center';
$lc_text = '<a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $listing['products_id']) . '">' . tep_image_button('button_buy_now.gif', IMAGE_BUTTON_BUY_NOW) . '</a> ';
break;
}

$list_box_contents[$cur_row][] = array('align' => $lc_align,
'params' => 'class="productListing-data"',
'text' => $lc_text);
}
}

new productListingBox($list_box_contents);
} else {
$list_box_contents = array();

$list_box_contents[0] = array('params' => 'class="productListing-odd"');
$list_box_contents[0][] = array('params' => 'class="productListing-data"',
'text' => TEXT_NO_PRODUCTS);

new productListingBox($list_box_contents);
}

if ( ($listing_split->number_of_rows > 0) && ((PREV_NEXT_BAR_LOCATION == '2') || (PREV_NEXT_BAR_LOCATION == '3')) ) {
?>
<table border="0" width="100%" cellspacing="2" cellpadding="2">
<tr>
<td class="smallText"><?php echo $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS); ?></td>
<td class="smallText" align="right"><?php echo TEXT_RESULT_PAGE . ' ' . $listing_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?></td>
</tr>
</table>
<?php
}
?>

Leider läuft die Seite im Moment nur bei mir lokal, daher kann ich sie nicht zeigen.
Ich habe zwar schon Lösungsansätze gefunden, doch scheinbar bin ich zu bl..., sie richtig einzubauen
Der php-Teil, auf den sich der css-Teil bezieht beginnt bei "$list_box_contents = array();".(Ich wußte keine andere Möglichkeit, den Quelltext in dem Threat unterzubringen)

kidax

  1. Hi Dieter!

    Ich habe zwar schon Lösungsansätze gefunden, doch scheinbar bin ich zu bl..., sie richtig einzubauen

    Lösungsansätze für welches Problem?
    Was ist eine "klobige Masse"?
    Tut mir leid, ich verstehe nicht, was dein Problem ist?

    Der php-Teil, auf den sich der css-Teil bezieht beginnt bei "$list_box_contents = array();".(Ich wußte keine andere Möglichkeit, den Quelltext in dem Threat unterzubringen)

    Aber ich habe schon richtig verstanden, dass es um ein Darstellungsproblem im Internetexplorer geht, oder?
    Wieso postest du dann den unnötigen PHP-Code. Wichtig ist, was im Browser ankommt!

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Dann nochmal von vorne (die php diente zur Anschauung),

      Im FF wird in der Produktansicht eine Tabelle gezeigt. Diese Tabelle hat 4 Spalten (Bild,Art.Beschreibung,Preis,"kaufen"-Button). Die Artikel sind untereinander aufgelistet. Zwischen den einzelnen Spalten und Zellen scheint der Seitenhintergrund durch und erweckt so die "optische" Trenung der einzelnen Zellen. Soweit im FF.

      Im IE werden die Spalten und Zellen aber nicht getrennt (d.h. es scheint kein Seitenhintergrund durch). Alles ist in der Tabellenfarbe ohne einen Zwischenraum. Sieht nicht gut aus.

      Dafür benötige ich eine Lösung. Meine Hoffnung ist, dass man das über die css regeln kann. Falls nicht (aus diesem Grund liegt die php dabei)vielleicht direkt in der php.

      Gruß

      Dieter

      1. Hi Dieter!

        Dafür benötige ich eine Lösung. Meine Hoffnung ist, dass man das über die css regeln kann. Falls nicht (aus diesem Grund liegt die php dabei)vielleicht direkt in der php.

        Jetzt habe ich schon mal das Problem verstanden. =)
        Wie sieht dein CSS-Code aus? Am besten wäre ein Link auf eine Beispielseite.

        Welche Hintergrundfarbe hast du der Tabelle zugewiesen, welche Farbe den einzelnen Zellen? Wie hast du die Abstände zwischen den Zellen definiert?

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
        1. Hi Dieter!

          Dafür benötige ich eine Lösung. Meine Hoffnung ist, dass man das über die css regeln kann. Falls nicht (aus diesem Grund liegt die php dabei)vielleicht direkt in der php.

          Jetzt habe ich schon mal das Problem verstanden. =)
          Wie sieht dein CSS-Code aus? Am besten wäre ein Link auf eine Beispielseite.

          Leider ist das ganze nur bei mir lokal. Kein Link möglich. Aber der css-code für diesen Teil befindet sich im ersten Threat.Der ist für die entsprechende php-Datei zuständig.
          Hintergrundfarbe der Tabelle ist border-color: #FFCC66;  Ist für alle Zellen und Tabelle definiert.

          Welche Hintergrundfarbe hast du der Tabelle zugewiesen, welche Farbe den einzelnen Zellen? Wie hast du die Abstände zwischen den Zellen definiert?

          Die Abstände: border-spacing: 2px;
          Viel mehr kann ich dir dazu auch nicht sagen.
          Gruß

          Dieter

          1. Hi Dieter!

            Die Abstände: border-spacing: 2px;

            Richtig. Ich bin ein Depp[TM].
            Leider interpretiert der IE das nicht. Aber du kannst eventuell den Tabellen spalten per Außenabstand (margin) etwas Freiraum verschaffen.

            MfG H☼psel

            --
            "It's amazing I won. I was running against peace, prosperity, and incumbency."
            George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
            Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)