Просмотр полной версии : TV не подцепляет хак для IE?
Что-то мне сдаётся, что не работает конструкция
<!--[if lte IE 6]>
<a href="#">Меню первого уровня
<table><tr><td>
<![endif]-->
после маппинга. Не вижу в исходниках загруженного через IE ни table, ни tr, ни td... Уж не контейнером ли надо маппить?
Вот код меню:
<div id="menu">
<ul>
<li><a href="#" class="menu1-level1-no">Меню первого уровня</a>
<!--[if lte IE 6]>
<a href="#">Меню первого уровня
<table><tr><td>
<![endif]-->
<ul>
<li><a href="#" class="menu1-level2-no">Меню второго уровня</a></li>
<li><a href="#" class="menu1-level2-act">Меню второго уровня (активное)</a></li>
</ul>
<!--[if lte IE 6]>
</td></tr></table>
</a>
<![endif]-->
Valery Romanchev
14.08.2008, 21:13
не надо таких вещей вставлять меппингом, все это гораздо удобнее вставлять через TS
Подскажи пожалуйста - как именно?
Так мне же не в header нужен? :-)
Чукча как раз писатель, правда начинающий. :-)
См. HTML код.
Pavel Antonov
14.08.2008, 22:26
Так мне же не в header нужен? :-)
Чукча как раз писатель, правда начинающий. :-)
См. HTML код.
Ай...не успел удалить раньше... видимо "я ЧУКЧА... тоже не читатель"
Приношу извинения...
Просто как-то не ассоциируются кондишены с чем то кроме вставки специальных CSS для IE.
Мне кажется, подход не правильный - нельзя делать код разный для браузеров в таком контексте.
Проблемы различия браузеров решаются в CSS.
А что делать в таком случае? В IE иначе меню не работает.
Использовать более новое меню, с каким-нибудь необтрузивным JS для старых версий браузеров. Благо есть.
-=UncleByte=-
15.08.2008, 04:45
Под Typo3 4.1.х аналогичный код работает вполне. Единственное что если стоит что-то типа sourceopt, то надо отключить в нем удаление комментариев в коде страницы. А так-то меню вполне себе будет генерится, благо для шаблона используется опять же TS.
Под Typo3 4.2.x не пробовал, но думаю что будет работать аналогично.
Рабочий пример - http://opuscontract.ru/ - верхнее меню.
Вот ведь что интересно, нашёл, что парсер тайпы (даже не темплы) не способен проворачивать такие конструкции, об это писал сам великий и ужасный Дулепов:
http://support.typo3.org/projects/templavoila/m/re-typo3-templavoila-html-comments-and-tv-321008/p/27/
но не понятно к какой версии это относилось и сохраняется ли это правило для 4.2?
-=UncleByte=-, ай шайтан, как сделал, а? :-D sourceopt у меня не установлен, где ещё можно отключить удаление комментариев?
Использовать более новое меню, с каким-нибудь необтрузивным JS для старых версий браузеров. Благо есть.
А может кто поделится? :-)
А что именно надо? просто выпадающее меню? под какие браузеры?
Простое текстовое выпадающее меню, очень желательно на чистом CSS, без использования JS.
IE5.5-7, FF1-3, Opera, Safari.
сюда поглядите, например http://www.stunicholls.com/menu/pro_dropdown_1.html А чистый CSS для старых ие - сами понимаете :)
Новые ИЕ тоже ничем не лучше.. :-( У меня меню в два ряда, так в ФФ выпадающий перекрывает нижележащие пункты, а в ИЕ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>
}
У меня вот такой код:
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 используется для корректной генерации меню даже в случае отсутствия подпунктов.
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/document-library/references/doc_core_tsref/4.1.0/view/10/2/
3. Как угодно в рамках определенных TS Ref. Можно и так. Потому что в том шаблоне активная ссылка никак не выделяется, а для состояния hover есть соответствующий код в css. К эзотерике все это не имеет никакого отношения. ;)
1) Внимательно читаем TS ref там прекрасно описано для чего нужен linkWrap а для чего wrap
2) Опять же читаем TS ref разделы про Common Menu Item States (http://typo3.org/documentation/document-library/references/doc_core_tsref/4.1.0/view/10/2/) и TMENUITEM (http://typo3.org/documentation/document-library/references/doc_core_tsref/4.1.0/view/10/8/)
Не в обиду будет сказано, но это уже начинает походить на фарс, типа "сделайте за меня". Вас уже прекрасно направили на нужные знания. Потрудитесь пожалуйста читать документацию ссылки на которую Вам дают, и тогда возможно не будет таких вопросов.
Не в обиду будет сказано, но это уже начинает походить на фарс, типа "сделайте за меня". Вас уже прекрасно направили на нужные знания. Потрудитесь пожалуйста читать документацию ссылки на которую Вам дают, и тогда возможно не будет таких вопросов.
Прощу прощения за назойливость. Столько всего и сразу... Просто в ФФ работало безо всяких linkWrap я и не стал вникать...
Спасибо.
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot