PDA

Zobacz pełną wersję : Układ topmenu



Jdwind
02-11-2007, 12:26
Witam ponownie (już nie wiem, który raz podczas ostatnich kilku dni). Przeszukałem forum pod kątem topmenu, ale nie znalazłem rozwiązania mojego problemu. Otóż utworzyłem sobie nową pozycję dla topmenu w templatce. Topmenu jest w niej umieszczone, ale po "chamsku, na żywca". Wygląda to tak (http://www.fotosik.pl/pokaz_obrazek/b15de37ed1dc026f.html). Teraz proszę o pomoc, jak zrobić, żeby wszystkie pozycje w menu (główne, bo jeżeli będę miał ich więcej, to zrobię rozwijane) były w równych komórkach? Czy w nowo utworzonej pozycji zrobić nowe pozycje - komórki, czy inaczej? Proszę o podpowiedź.
Pozdrawiam, Jacek.

kobylinski
02-11-2007, 12:47
Jeżeli otoczysz moduł div'em i nadasz mu np. id='top' to można w stylach dodać następujący blok:


div#top a.mainlevel,
div#top span.mainlevel{
display: block;
float:left;
}

div#top a.mainlevel{
width:100px;
}

div#top span.mainlevel{
width:10px;
}


Oczwywiście dodatkowo możesz dozbrajać style w centrowanie tekstu, kolory itd. Nie wiem tylko jak to się będzie miało do rozwijanego menu (z exmenu nie powinno być problemów).

powodzenia ;)

Jdwind
02-11-2007, 13:27
Dzięki. Właśnie tą jedną rzecz, jak mi się wydaje, nie do końca rozumiem. Mam templatkę opartą na tabelach (jeżeli strzelę jakieś głupstwo to wyłącznie z braku wiedzy). Pozycję w pliku index.php mam zdefiniowaną tak:
<tr>
<td align="center" valign="top">
<table width="50%" border="0" cellspacing="0" cellpadding="0">
<tr>
<?php if ( mosCountModules ( "vline" ) > 0 ) { ?>
<td width="450" height="16" valign="top" class="vline">
<table width="450" border="0" cellspacing="0" cellpadding="0">
<tr><td><?php mosLoadModules ( 'vline' ); ?></td></tr>
</table>
<?php } ?>
</tr>
</table>
</td>
</tr>

i tu, jak mi się wydaje, nie nadam "divowi" id="vline". Co innego jakby to nie było oparte na tabelach (chyba?). W takim przypadku w pliku .css definiuję to tak:
.vline{/*atrybuty*/}. Albo źle to rozumiem?
Pozdrawiam, Jacek.

kobylinski
02-11-2007, 13:41
OK .. w takim razie zamiast 'div#top' napisz 'td.vline'.

Jdwind
02-11-2007, 14:08
Niestety :( nie drgnęło... Zrobiłem tak:
td.vline a.mainlevel, td.vline span.mainlevel{
display: block;
float:left;
}

td.vline a.mainlevel{
width:100px;
}

td.vline span.mainlevel{
width:10px;
}
Menu wygląda jak wyglądało. Co jeszcze mogę spróbować zrobić?
Jacek.

kobylinski
02-11-2007, 14:13
Nie wiem w jaki sposób generowane jest same menu. Najlepiej by było jakbyś przesłał fragment strony (tam gdzie jest menu) wygenerowanej przez joomlę.

Jdwind
02-11-2007, 16:11
Udało mi się zrobić. Zastosowałem to, co mi podałeś i dodałem -nav, bo topmenu ma w ustawieniach właśnie przyrostek -nav. W tej chwili wygląda to mniej więcej tak:

.vline{
text-align: center;
background: url(../images/subhead1.jpg) repeat-x;
font-size: 14px;
line-height: 16px;
}

td.vline a.mainlevel-nav, td.vline span.mainlevel-nav{
display: block;
float:left;
}

td.vline a.mainlevel-nav{
width:100px;
font-family: Verdana, Helvetica, Arial, sans-serif;
color: Blue;
}

td.vline a.mainlevel-nav:hover {
color: White;
text-decoration: none;
}
Natomiast to mi nic nie zmienia:
td.vline span.mainlevel-nav{
width:10px;
}

I jeden mały problem - w Firefoksie menu jest ładnie wyrównane do lewej strony, natomiast w IE jest na środku. Tego jeszcze nie doszedłem, jak zmienić. Ale wielkie dzięki za pomoc.
Pozdrawiam, Jacek.

Edit: problem okazał się nie być problemem. Po prostu zanim coś zaczynam modzić na stronie, najpierw staram się to wypróbować u siebie, lokalnie. No i lokalnie było tak, jak opisałem. Natomiast po zmianach na serwerze problemu nie ma :)
Pozdrawiam, Jacek.