PDA

Просмотр полной версии : Помогите с TMENU


litleblinus
26.05.2011, 15:00
Здравствуйте уважаемые знатоки typo3! Я делаю первый сайт на typo3 по книге Jeremy Greenawalt - TYPO3 Templates - 2010. Всё было отлично пока я не добрался до главы про меню... Вроде всё делаю правильно, но функция rollover у меня не работает - изображение не меняется, а в шапке сайта появляется строчка /* /*]]>*/ которая (на сколько я понял) берётся из скрипта создаваемого typo3.
вот код который должен быть:

## Main Menu [Begin]
lib.mainMenu = HMENU
lib.mainMenu.entryLevel = 0
lib.mainMenu.wrap = <ul id="menu-area">|</ul>
lib.mainMenu.1 = TMENU
lib.mainMenu.1 {
begin = 1
NO {
allWrap = <li class="menu-item">|</li>
after ACT <img src="clear.gif" width="15"> | |*| <img src="clear.gif" width="15"> | |*| &nbsp;
ATagParams = class="menu-links"
ATagTitle.field = description // title
beforeImg = fileadmin/templates/bullet_rollover.png
beforeImgLink = 1
##RO = 1
##beforeROImg = fileadmin/templates/bullet_rollover.png
}
ACT < .NO
ACT = 1
ACT {
ATagParams = class="active-link"
beforeImg >
}
}
## Main Menu [End]


я, для теста, убрал всё лишнее и оставил только это:

## Main Menu [Begin]
lib.mainMenu = HMENU
lib.mainMenu.entryLevel = 0
lib.mainMenu.wrap = <ul id="menu-area">|</ul>
lib.mainMenu.1 = TMENU
lib.mainMenu.1.NO {
allWrap = <li class="menu-item">|</li>
beforeImgLink = 1
beforeImg = fileadmin/templates/bullet.png
RO = 1
beforeROImg = fileadmin/templates/bullet_rollover.png
allWrap = <li class="menu-item">|</li>
}
## Main Menu [End]

но проблема осталась. Если тут можно оставлять ссылку на сайт - напишите и я кину адрес своего сайта чтобы было нагляднее.

-=UncleByte=-
26.05.2011, 18:17
Проще всего вот эту всю логику ролловеров поместить в css, особенно если они одинаковые для всех ссылок. Это и проще и правильнее с точки зрения отделения логики от оформления.
То есть в вашем случае код css будет примерно таким (то что нужно для rollover)

li.menu-item {
padding-left: 10px; /* отступ для размещения картинки */

/* собственно картинка для обычного состояния */
background: url('fileadmin/templates/bullet.png') no-repeat 0 5px;
}
li.menu-item:hover {
/* картинка для состояния "мышь сверху" */
background: url('fileadmin/templates/bullet_rollover.png') no-repeat 0 5px;
}
Как-то так.

litleblinus
26.05.2011, 21:07
спасибо! завтра попробую на работе:)

litleblinus
27.05.2011, 12:35
Что-то не получается.. Добавил в style.css, но он только делает отступ, картинку не вставляет.:(
вот сам файл ксс:

/* @group Reset Styling */

/* --------------------------------------------------------------

reset.css
Resets default browser CSS.

Based on but not the same as work by Eric Meyer:
http://meyerweb.com/eric/tools/css/reset/
v1.0 | 20080212

-------------------------------------------------------------- */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-size: 100%;
vertical-align: baseline;
background: transparent;
}

blockquote, q {
quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}

:focus {
outline: 0;
}

ins {
text-decoration: none;
}

del {
text-decoration: line-through;
}

table {
border-collapse: collapse;
border-spacing: 0;
}

/* @end Reset Styling */

/* @group Base Styling */

body {
font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
font-size: 16px;
line-height: 18px;
margin: 20px;
}
p, ul, div {
color: #333;
font-size: 16px;
line-height: 18px;
}
h1 {
font-size: 30px;
line-height: 36px;
margin-bottom: 18px;
font-weight: 200;
font-variant: small-caps;
}
h2 {
margin-bottom: 24px;
line-height: 30px;
font-size: 18px;
}
h3 {
font-size: 20px;
line-height: 24px;
}
h4, h5, h6 {
font-size: 18px;
line-height: 24px;
}
ul, ol {
margin: 0px 0px 18px 18px;
}
ul {
list-style-type: circle;
}
ol {
list-style: decimal;
}
td {
padding: 5px;
}
:link, :visited {
font-weight: bold;
text-decoration: none;
color: #036;
}

/* @end Base Styling */

/* @group Menu Styling */

ul#menu-area li, ul#submenu-area li {
list-style-type: none;
display: inline;
margin-right: 20px;
}

ul#menu-area {
border-bottom: 2px solid #666;
margin-bottom: 2px;
}

ul#submenu-area {
margin: 0px 0px 20px 50px;
}

li.menu-item a {
font-size: 20px;
line-height: 20px
}

li.menu-item a, li.submenu-item a {
color: #666;
font-weight: normal;
font-variant: small-caps;
}

/* @end Menu Styling */

/* @group TYPO3 Markup Styling */

dd.csc-textpic-caption {
font-size: 70%;
}

li.menu-item a.active-link {
color: #0033FF;
}

li.menu-item {
padding-left: 50px;
background: url('fileadmin/templates/bullet.png') no-repeat 0 5px;
}

li.menu-item:hover {
background: url('fileadmin/templates/bullet_rollover.png') no-repeat 0 5px;
}

/* @end TYPO3 Markup Styling */


суть в том что картинка должна быть перед текстом меню, это просто кружок. тоесть например "картинка" "пункт меню"

litleblinus
27.05.2011, 12:46
не понимаю, пробовал менять цвет - меняется, а изображение не вставляет

litleblinus
27.05.2011, 12:48
а всё понял, изображение нужно было кидать в папку к файлу css

-=UncleByte=-
27.05.2011, 13:54
Ну да, чтобы пути были правильные.

litleblinus
27.05.2011, 14:42
Спасибо за помощь! Интересно в чём же была проблема

-=UncleByte=-
27.05.2011, 15:27
Я забыл сказать что сейчас для вот этого эффекта в меню достаточно следующий TS-код использовать:
lib.mainMenu = HMENU
lib.mainMenu {
entryLevel = 0
wrap = <ul id="menu-area">|</ul>
1 = TMENU
1 {
NO {
linkWrap = <li class="menu-item">|</li>
ATagParams = class="menu-links"
ATagTitle.field = description // title
}
ACT = 1
ACT < .NO
ACT.ATagParams = class="active-link"
}
}
То есть меню остается исключительно текстовым, а все оформление (внешний вид) задается исключительно с помощью css. Это намного проще и удобнее.

litleblinus
27.05.2011, 18:19
Я забыл сказать что сейчас для вот этого эффекта в меню достаточно следующий TS-код использовать:
lib.mainMenu = HMENU
lib.mainMenu {
entryLevel = 0
wrap = <ul id="menu-area">|</ul>
1 = TMENU
1 {
NO {
linkWrap = <li class="menu-item">|</li>
ATagParams = class="menu-links"
ATagTitle.field = description // title
}
ACT = 1
ACT < .NO
ACT.ATagParams = class="active-link"
}
}
То есть меню остается исключительно текстовым, а все оформление (внешний вид) задается исключительно с помощью css. Это намного проще и удобнее.

Спасибо! попробую