PDA

Zobacz pełną wersję : Div'y obok siebie



Chrisx2
10-01-2007, 11:52
Witam
Używam szablonu jll_hammokstudios (http://www.joomlademo.de/index.php?mos_change_template=jll_hammokstudios_i) (tu podgląd live).
Działa pięknie.
Na samym dole są widoczne trzy moduły.
Szablon jest tak zrobiony, że te moduły rozciągają się automatycznie. Tzn. Jak jest opublikowany tylko 1, to zajmuje całą szerokość, jak dwa to się dzielą, podobnie jak trzy.
Chciałbym przenieść cały ten blok z trzema modułami do góry w miejsce centralne. Po lewej jest lewy blok, po prawej prawy, a ten trzymodułowy ma się wyświetlać pomiędzy nimi. Dopiero pod nim mają się wyświetlać artykuły.

Problem w tym, że trzeci moduł (z tego trzypack'a) ucieka pod spód zamiast się ustawić w jednej linii z pozostałymi dwoma.
Jak są na dole to ustawiają się równo w jednej linii i dobrze się rozciągają.

Nawet jeśli ustawię je, że są bardzo wąskie i za drugim jest sporo miejsca, to i tak ten trzeci schodzi do kolejnej linii.

To jest wycinek z szablonu:


<div id="topbodywidth-1024">


<!--USERSCODE - Adjust size of user1,2,5 columns depending on which is published-->

<?php

if (mosCountModules( "user1" ) & mosCountModules( "user2" ) & mosCountModules( "user5" )) $user_width=33; //all three

else if ( //only two

(mosCountModules( "user1" ) & mosCountModules( "user2" )) |

(mosCountModules( "user5" ) & mosCountModules( "user2" )) |

(mosCountModules( "user5" ) & mosCountModules( "user1" ))

) $user_width=50;

else if ( //only one

(mosCountModules( "user1" )) |

(mosCountModules( "user2" )) |

(mosCountModules( "user5" ))

) $user_width=100;

else $user_width=0; //none



if ($user_width != 0) { //if something is published run this code, else skip it

?>

<div id="articlelinkmenus">

<?php if (mosCountModules( "user1" )) { ?>

<div id="user1_<?php echo $user_width; ?>">

<?php mosLoadModules ( 'user1',-2); ?>

</div>

<?php } ?>

<?php if (mosCountModules( "user2" )) { ?>

<div id="user2_<?php echo $user_width; ?>">

<?php mosLoadModules ( 'user2',-2); ?>

</div>

<?php } ?>

<?php if (mosCountModules( "user5" )) { ?>

<div id="user5_<?php echo $user_width; ?>">

<?php mosLoadModules ( 'user5',-2); ?>

</div>

<?php } ?>

</div>

<?php } ?>

<!--USERSCODE END-->
</div> A to z css:

#topbodywidth-1024 {

Width:590px;

text-align:left;

margin-left:0;

margin-right:auto;

margin-top: 0px;

background-color: #fff;

padding:2px;

}


#user1_33 {

float:left;

width:33.3%;

}



#user2_33 {

float:left;

width:33.2%;

border-left:1px dotted #ccc;

}



#user5_33 {

float:left;

width:33.2%;

border-left:1px dotted #ccc;

}



#user1_50 {

float:left;

width:50%;

}



#user2_50 {

float:left;

width:49.8%;

border-left:1px dotted #ccc;

}



#user5_50 {

float:left;

width:49.8%;

border-left:1px dotted #ccc;

}



#user1_100 {

width:100%;

}



#user2_100 {

width:100%;

}



#user5_100 {

width:100%;

}
Próbowałem zmieniać szerokość tego div'a, w którym się mieszczą, jak i samych modułów. Zmienia się ich szerokość, ale nie powoduje to ustawienia się w jednej linii poziomej wszystkich trzech. Dwa tak, a trzeci złazi na pod spód.
Jak zrobić, żeby się ustawiły w jednej linii? Dlaczego jak są na dole to się ustawiają, a tu nie?

Viking
10-01-2007, 18:43
być może tytuł albo zawartośż któregoś z modułów nie chce się złamać, rozumiem że szerokość nadrzędnego określałeś w pixelach? Jeśli nie to spróbuj (w czymkolwiek oprócz procentów bo przeliczanie procentów wewnątrz procentów nie jest intuicyjne ;) )