Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   TV не подцепляет хак для IE? (http://forum.typo3.ru/showthread.php?t=6673)

pomotom 15.08.2008 12:13

А что именно надо? просто выпадающее меню? под какие браузеры?

maaboo 15.08.2008 12:16

Простое текстовое выпадающее меню, очень желательно на чистом CSS, без использования JS.

IE5.5-7, FF1-3, Opera, Safari.

pomotom 15.08.2008 12:18

сюда поглядите, например http://www.stunicholls.com/menu/pro_dropdown_1.html А чистый CSS для старых ие - сами понимаете :)

maaboo 15.08.2008 12:22

Новые ИЕ тоже ничем не лучше.. :-( У меня меню в два ряда, так в ФФ выпадающий перекрывает нижележащие пункты, а в ИЕ7 - выпадающее работает, но закрывается вторым рядом... то-ли что-то с z-index, то ли с руками...

Ну дык можно же и на чистом CSS, вопрос в том - как удалось вставить conditional comments внутрь шаблона, и как это так промаппилось правильно...

-=UncleByte=- 15.08.2008 16:29

Цитата:

-=UncleByte=-, ай шайтан, как сделал, а? :-D
Ну вот так вот, собственно TS меню на http://opuscontract.ru/
Сделано именно так чтобы исключить некоторые страницы в принципе и у одной не показывать подпункты в выпадающем меню, т.к. их может быть очень много.
Сам принцип взяты с cssplay
Код:

lib.menu01sp = COA
lib.menu01sp {
10 = HMENU
10.excludeUidList = 8,5,6
10.1 = TMENU
10.1 {
maxItems = 5
expAll = 1
NO.linkWrap = <li class="tmenu">|</li>
IFSUB = 1
IFSUB {
wrapItemAndSub = <li class="tmenu">|<!--<![endif]--></li>
stdWrap.wrap =  | <!--[if IE 7]><!-->
linkWrap = | <!--<![endif]-->
}
}
10.2 = TMENU
10.2 {
wrap = <!--[if lte IE 6]><table><tr><td><![endif]--><ul>|</ul><!--[if lte IE 6]></td></tr></table></a><![endif]-->
NO {
linkWrap =  <li>|</li>
maxItems = 5
}
}
20 = TEXT
20.value = Референции
20.typolink.parameter = 8
20.wrap = <li class="tmenu">|</li>
}


maaboo 15.08.2008 17:01

У меня вот такой код:

Код:


lib.menu_1 = HMENU

lib.menu_1.1 = TMENU
lib.menu_1.1 {
  expAll = 1
  wrap = <UL> | </UL>
  NO.wrapItemAndSub = <LI class="menu1-level1-no"> | </LI>
  ACT = 1
  ACT.wrapItemAndSub = <LI class="menu1-level1-act"> | </LI>
}

lib.menu_1.2 = TMENU
lib.menu_1.2 {
  expAll = 1
  wrap = <UL> | </UL>
  NO.wrapItemAndSub = <LI class="menu1-level2-no"> | </LI>
  ACT = 1
  ACT.wrapItemAndSub = <LI class="menu1-level2-act"> | </LI>
}

То есть написать надо так:

Код:

lib.menu_1 = COA
lib.menu_1 {
10 = HMENU
10.1 = TMENU
{
  expAll = 1
...

А дальше? Какие именно строки отвечают за нормальную работу?

lib.menu_1 = COA - обязательно?

Вместо NO.wrapItemAndSub = <LI class="menu1-level1-no"> | </LI> нужно подставить
NO.linkWrap = <li class="menu1-level1-no">|</li>
?

И
IFSUB = 1
IFSUB {
wrapItemAndSub = <li class="???">|<!--<![endif]--></li>
stdWrap.wrap = | <!--[if IE 7]><!-->
linkWrap = | <!--<![endif]-->
}
тоже решает (коль скоро там кондишенал комменты)? А что мне ставить, ведь у меня два класса для меню определено. Или можно обойтись одним?

-=UncleByte=- 15.08.2008 17:40

COA использовать необязательно, в моем случае он используется только ради того чтобы не отображать несколько страниц и не генерировать подпункты выпадающего меню для одной из страниц просто потому что там количество подстраниц постоянно растет.
Вопрос был как сделаны conditional comments в меню — в приведенном коде это показано. wrapItemAndSub используется для корректной генерации меню даже в случае отсутствия подпунктов.

maaboo 15.08.2008 17:51

Цитата:

Сообщение от -=UncleByte=- (Сообщение 20990)
COA использовать необязательно, в моем случае он используется только ради того чтобы не отображать несколько страниц и не генерировать подпункты выпадающего меню для одной из страниц просто потому что там количество подстраниц постоянно растет.
Вопрос был как сделаны conditional comments в меню — в приведенном коде это показано. wrapItemAndSub используется для корректной генерации меню даже в случае отсутствия подпунктов.

Ну показано-то конечно показано. :-) За что, кстати, огромное спасибо. Но проясни до конца, пожалуйста, вот эти моменты (ибо я ещё плохо говорю на TS :-):

У тебя:
Код:

NO.linkWrap = <li class="tmenu">|</li>
IFSUB = 1
IFSUB {
wrapItemAndSub = <li class="tmenu">|<!--<![endif]--></li>
stdWrap.wrap =  | <!--[if IE 7]><!-->
linkWrap = | <!--<![endif]-->
}

У меня:
Код:

lib.menu_1.1 {
  expAll = 1
  wrap = <UL> | </UL>
  NO.wrapItemAndSub = <LI class="menu1-level1-no"> | </LI>
  ACT = 1
  ACT.wrapItemAndSub = <LI class="menu1-level1-act"> | </LI>
}

Три важных момента:
1. Вместо wrap - linkWrap перед определением wrapItemAndSub - почему?
2. wrapItemAndSub заключён в IFSUB - это что и зачем?
3. Как мне быть с определением двух классов? Просто повторить для каждого? Почему у тебя не определены оба класса? Что за тайное знание? :-)

-=UncleByte=- 15.08.2008 18:25

1. Потому что надо "обернуть" непосредственно ссылку, а не все к ней относящееся.
2. http://typo3.org/documentation/docum...1.0/view/10/2/
3. Как угодно в рамках определенных TS Ref. Можно и так. Потому что в том шаблоне активная ссылка никак не выделяется, а для состояния hover есть соответствующий код в css. К эзотерике все это не имеет никакого отношения. ;)

reva2 15.08.2008 18:27

1) Внимательно читаем TS ref там прекрасно описано для чего нужен linkWrap а для чего wrap
2) Опять же читаем TS ref разделы про Common Menu Item States и TMENUITEM

Не в обиду будет сказано, но это уже начинает походить на фарс, типа "сделайте за меня". Вас уже прекрасно направили на нужные знания. Потрудитесь пожалуйста читать документацию ссылки на которую Вам дают, и тогда возможно не будет таких вопросов.


Часовой пояс GMT +4, время: 00:35.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot