IE 6 подводит, проблемы с высотой строки

Статус
Закрыто для дальнейших ответов.

talentZlatan

New Member
Регистрация
23.07.2010
Сообщения
5
есть сайт vsekotly.com, возьмём например такую страницу: http://vsekotly.com/virtuemart.html?page=shop.browse&category_id=134&TreeId=44&vmcchk=1

-в Мозилле высота строк нормальная, ничего не растягивается, выглядят как и планировалось
problems_moz.png
-в ИЕ, элементы внутри правой ячейки вместо того, чтобы идти друг за другом, становятся один под другим, и высота строк таким образом становится слишком большой...выглядит отвратно.
problems_ie.png

вот код таблицы (со скриптами, что создаёт мне определённые сложности)

Код:
<table id="orderChildTbl" cellpadding="4" cellspacing="1" border="0" width="100%">
<?php if($display_header == "Y") { ?>
<tr>
        <td nowrap="nowrap" style="font-weight: bold; width: 25%;"><?php echo $VM_LANG->_('PHPSHOP_PRODUCT_DESC_TITLE') ?></td>
        <?php //Ouput Each Attribute Heading
        if( !empty( $headings )) {
	        foreach($headings as $key => $value) { ?>
<td nowrap="nowrap" style="font-weight: bold; width: 45%;"><?php echo $headings[$key] ?></td>
	        <?php } ?>
	        <!--<td><?php echo $VM_LANG->_('PHPSHOP_CART_QUANTITY') ?></td>
	        <td><?php echo $VM_LANG->_('PHPSHOP_PRODUCT_INVENTORY_PRICE') ?></td>-->
      <td nowrap="nowrap" style="font-weight: bold; width: 30%;">Заказ товара</td>
	<?php } ?>
</tr>
<?php
	}
// Loop through each row and build the table
foreach( $products as $product ) { 		

    foreach( $product as $attr => $val ) {
			// Using this we make all the variables available in the template
			// translated example: $this->set( 'product_name', $product_name );
			$this->set( $attr, $val );
    }
    
    if( CHECK_STOCK == '1' && !$product['product_in_stock'] ) {
     	$notify = true;
    } else {
    	$notify = false;
    }
    
    ?>
	<tr>
				<td nowrap="nowrap" style="cursor:pointer"><span style="text-decoration:underline"><?php echo $product['product_title'] ?></span></td>
                <?php // Ouput Each Attribute
                if( !empty( $product['attrib_value'] )) {
	                foreach($product['attrib_value'] as $attribute) { ?>
	                    <td nowrap="nowrap">
		                <?php echo $attribute ?></td>
	                <?php 
					}
				}
				?>
	
	        <form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="addtocart<?php echo $product['product_id'] ?>" class="addtocart_form">
              <td style="overflow:hidden"><div style="float:left; overflow:hidden;">
                <input type="hidden" name="prod_id[]" value="<?php echo $product['product_id'] ?>" />
                <input type="hidden" name="product_id" value="<?php echo $product['parent_id'] ?>" />
				<?php 
                if (USE_AS_CATALOGUE != '1'  && $product_price != "" && !stristr( $product_price, $VM_LANG->_('PHPSHOP_PRODUCT_CALL'))) { 

					$button_lbl = $VM_LANG->_('PHPSHOP_CART_ADD_TO');
					$button_cls = 'addtocart_button';
					if( CHECK_STOCK == '1' && !$product['product_in_stock'] ) {
						$button_lbl = $VM_LANG->_('VM_CART_NOTIFY');
						$button_cls = 'notify_button';
					}

                	?>
                    <span>
                    <input type="submit" class="<?php echo $button_cls ?>" style="float: right;" value="<?php echo $button_lbl ?>" title="<?php echo $button_lbl ?>" /></span>
                <?php } 
                
                    // Output Price 
                if( $_SESSION['auth']['show_prices'] && _SHOW_PRICES) {  ?>           
                    <span class="d_product_price">
                    <?php
                    if( $product['price'] != $product['actual_price'] ) { ?>
                        <span class="product-Old-Price"><?php echo $product['price'] ?>&nbsp;</span>
                    <?php } 
                    echo $product['actual_price'] ?></span>
                <?php } 
                // Output Quantity Box 
                if (USE_AS_CATALOGUE != '1' ) { ?>
                    <span><?php echo $product['quantity_box'] ?></span>
                <?php } ?>
            	
            </div>
            <input type="hidden" name="flypage" value="shop.<?php echo $product['flypage'] ?>" />
            <input type="hidden" name="category_id" value="<?php echo $product['category_id'] ?>" />
            <input type="hidden" name="page" value="shop.cart" />
            <input type="hidden" name="func" value="cartAdd" />
            <input type="hidden" name="option" value="com_virtuemart" />
            <input type="hidden" name="Itemid" value="<?php echo $product['Itemid'] ?>" />
            <input type="hidden" name="set_price[]" value="" />
            <input type="hidden" name="adjust_price[]" value="" />
            <input type="hidden" name="master_product[]" value="" />    
            <?php
            // Out Put Product Type 
            if ($display_product_type == "Y" && $product['product_type'] != "") { ?>  
                <div>
                <?php echo $product['product_type'] ?>
                </div>
            <?php } 
            // Output Advanced & Custom Attributes
            if(USE_AS_CATALOGUE != '1' && ($product['advanced_attribute'] != "" || $product['custom_attribute'] != "")) { ?>
                <div>
                    <?php if($product['advanced_attribute']) {
                        echo $product['advanced_attribute'];
                    }
                    if($product['custom_attribute']) {
                        echo $product['custom_attribute'];
                    }
                ?>
                </div>
            <?php } ?>
         </td> </form>
          
    </tr>
    <?php } ?>
</table>
если кто-то знает как решить проблему, отпишитесь пожалуйста
зы: прошу прощения за выложенный код в таком виде, здесь ещё разные модули по-моему, сайт на джумле сделан. решил ничего не убирать на всякий случай
 

tigra60

Спасатель
Регистрация
10.12.2009
Сообщения
1 990
Посмотрите исходный код страницы - у Вас нигде не указаны размеры ячеек таблицы. Вот, каждый браузер их и устанавливает по своему усмотрению. Как говорится, имеем то, что имеем...

ЗЫ. Когда приводите код, используйте соответствующий спец. элемент (раскрывающийся список слева вверху в редакторе сообщений).
 

Romani

Well-Known Member
Регистрация
08.01.2010
Сообщения
462
Не смотря на то, что уже можно забыть про 6 осла, ширину ячеек установить таки надо, тигра прав. А я бы еще, в этой таблице сделал выделение не ячейки а строки сразу при наведении. Логичнее какбэ.
Вот с таким http://sib.ms/democolor.html эффектом вообще будет красота.
 

talentZlatan

New Member
Регистрация
23.07.2010
Сообщения
5
установить ширину не могу, потому что она всегда будет разная, товаров на сайте очень много и основные характеристики разные, плюс столбцов не всегда 3, они добавляются через систему управления
устанавливал размер ячейки самой правой и до 200 пискелей, по идее все элементы должны влезть, а они всё равно друг под другом
 

Romani

Well-Known Member
Регистрация
08.01.2010
Сообщения
462
тогда в td добавьте nowrap что то в этом роде
Код:
<td nowrap></td>
переноса в строках быть не должно. Если кнопка всеравно переносится, пропишите css для нее или другого элемента с переносом display:inline
 

talentZlatan

New Member
Регистрация
23.07.2010
Сообщения
5
тогда в td добавьте nowrap что то в этом роде
Код:
<td nowrap></td>
переноса в строках быть не должно. Если кнопка всеравно переносится, пропишите css для нее или другого элемента с переносом display:inline
nowrap пробовал, не помогло. display: inline попробую, спасибо за совет. как сделаю - отпишусь, надеюсь сработает
я бы уже и забил на это дело, но многие клиенты далеки от общения с интернетом, поэтому у многих старые браузеры
 

Serg@NT

Well-Known Member
Регистрация
20.02.2010
Сообщения
506
Вложите в левую ячейку ещё табличку с одной строкой и 3 ячейками: цена, поле кол-ва и кнопка. Тогда они стопудово будут в строчку.

А вообще, что-то у вас там наверчено всего. Вложенный в ячейку див, занимающий всё пространство, куча лишних span'ов, перемешанные местами элементы, выравниваемые через float. Зачем это всё? Расположите элементы в том порядке, в котором они должны идти, уберите этот див и задайте ячейке nowrap. Думаю, этого будет достаточно.
 

talentZlatan

New Member
Регистрация
23.07.2010
Сообщения
5
Вложите в левую ячейку ещё табличку с одной строкой и 3 ячейками: цена, поле кол-ва и кнопка. Тогда они стопудово будут в строчку.

А вообще, что-то у вас там наверчено всего. Вложенный в ячейку див, занимающий всё пространство, куча лишних span'ов, перемешанные местами элементы, выравниваемые через float. Зачем это всё? Расположите элементы в том порядке, в котором они должны идти, уберите этот див и задайте ячейке nowrap. Думаю, этого будет достаточно.
честно скажу, не разобрался в этом коде до конца, что к чему относится, где чекбокс, где цена и тд., поэтому сделать таблицу с ячейками затруднительно. но попробую
 

tigra60

Спасатель
Регистрация
10.12.2009
Сообщения
1 990
Простите за оффтоп, но вот вам характерный примерчик, какой гемор можно получить от CMS, не зная ее устройства и принципов построения модулей и компонентов. Тут одна надежда, что нужный модуль написан ответственным человеком, а не говнокодером. Про валидность кода модулей я вообще молчу...
 

talentZlatan

New Member
Регистрация
23.07.2010
Сообщения
5
пытаюсь загнать в таблицу, получается с трудом, нужные элементы в коде отыскал...но не могу понять что тогда значит всё остальное.

кстати не только ие6 так отображает, ие7 тоже, начиная с 8-ого уже нормально
 
Статус
Закрыто для дальнейших ответов.
Верх Низ