Die Farbnavigation hab ich mittlerweile hinbekommen, aber das Menü klappt nicht mehr auf, obwohl die Seiten im Quellcode stehen.
Scheiß IE 6 & 7, denn der Firefox macht es ganz brav 🙂
Habe auch ein javascript kopiert und eingebunden mit:
# Default PAGE object:
page = PAGE
page.typeNum = 0
page.includeCSS {
file1 = fileadmin/css/style.css
file1.media = screen
file2 = fileadmin/css/search.css
file2.media = screen
file3 = fileadmin/css/login.css
file3.media = screen
}
page.headerData = COA
page.headerData.11 = TEXT
page.headerData.11.value = <script type="text/javascript" src="fileadmin/javascript/ie6hover.js"></script>
page.10 = USER
page.10.userFunc = tx_templavoila_pi1->main_page
In der javascript steht folgendes, was offline auch funktioniert hat!
// JavaScript Document
if(window.navigator.systemLanguage && !window.navigator.language) {
function hoverIE() {
var LI = document.getElementById("menu2").firstChild;
do {
if (sucheUL(LI.firstChild)) {
LI.onmouseover=einblenden; LI.onmouseout=ausblenden;
}
LI = LI.nextSibling;
}
while(LI);
}
function sucheUL(UL) {
do {
if(UL) UL = UL.nextSibling;
if(UL && UL.nodeName == "UL") return UL;
}
while(UL);
return false;
}
function einblenden() {
var UL = sucheUL(this.firstChild);
UL.style.display = "block";
}
function ausblenden() {
sucheUL(this.firstChild).style.display = "none";
}
window.onload=hoverIE;
}
Der CSS-Code sieht für das Menü folgendermaßen aus:
/* Die Subnavigation */
div#subnavigation div{
clear:left;
}
ul#menu2 {
margin: 0; padding: 0;
text-align: left;
/*background-color:#9999FF;*/
}
ul#menu2 li {
list-style: none;
float: left; /* ohne width - nach CSS 2.1 erlaubt */
position: relative;
margin: 0; padding: 0;
}
* html ul#menu2 li { /* Korrektur fuer den IE */
margin-bottom: -0.4em;
}
ul#menu2 li ul {
margin: 0; padding: 0;
position: absolute;
top: 1.9em; left: -0.8em;
display: none; /* Untermenu2 ausblenden */
}
* html ul#menu2 li ul { /* Korrektur fuer IE 5.x */
left: -1.5em;
lef\t: -0.4em;
}
ul#menu2 li:hover ul {
display: block; /* Untermenu2 in modernen Browsern einblenden */
}
ul#menu2 li ul li {
float: none;
display: block;
margin-left:-1.2em;
margin-bottom:0.2em;
margin-top:-0.3em;
border-top:1px solid #fff;
width:180px;
}
ul#menu2 li ul li a:hover{
background:#BFBFFF;
width:180px;
}
ul#menu2 a, ul#menu2 span {
display: block;
width: 100%; /* Breite den in li enthaltenen Elementen zuweisen */
padding: 0.1em 0em;
text-decoration: none;
color:#000000;
}
* html ul#menu2 a, * html ul#menu2 span {
width: 8.6em; /* Breite nach altem MS-Boxmodell für IE 5.x */
w\idth: 6.4em; /* korrekte Breite fuer den IE 6 im standardkompatiblen Modus */
}
ul#menu2 li a:hover {
text-decoration:underline;
color:#000000;
}
ul#menu2 span a:hover {
/*background-color:#BFBFFF;*/
text-decoration:none;
color:#000000;
}
li a#aktuell { /* aktuelle Rubrik kennzeichnen */
color:#000000;
text-decoration:underline;
}
ul#menu2 li ul span a{ /* aktuelle Unterseite kennzeichnen */
width:180px;
padding-left:10px;
}
Mein TypoScript sieht so aus, um das Untermenü einzubinden:
lib.subnavi = HMENU
lib.subnavi {
#
special = directory
special.value = 3
wrap = <div class="fest"><ul id="menu2"> | </div></ul>
### Hauptmenue
1 = TMENU
1 {
#wrap = <ul> | </ul>
expAll = 1
noBlur = 1
NO.ATagTitle.field = title//subtitle
NO.ATagParams = class = "aktuell"
NO.wrapItemAndSub = <li> | </li>
IFSUB = 1
IFSUB {
wrapItemAndSub = <li> | </li>
allWrap = | <!--<![endif]-->
linkWrap = |<!--[if IE 7]><!-->
ATagBeforeWrap = 1
}
}
2 = TMENU
2 {
#wrap = <table><tr><td><ul> | </ul></td></tr></table><!--[if lte IE 6]></a><![endif]-->
wrap = <ul><span style="background-color:#fb9d00"> | </span></ul>
expAll = 1
noBlur = 1
NO.ATagTitle.field = title//subtitle
NO.wrapItemAndSub = <li> | </li>
IFSUB = 1
IFSUB {
wrapItemAndSub = <li> | </li>
allWrap = | <!--<![endif]-->
linkWrap = |<!--[if IE 7]><!-->
ATagBeforeWrap = 1
}
}
3 < .2
4 < .2
}
Tipp: In der wrap-zeile unter special.value binde ich die klasse ein, die die jeweiligen hintergrundfarbe des containers beinhaltet, z.B. für den Menüpunkt aus der ersten Ebene Feste.
Ist das ein Typo3 oder doch eher ein IE - Problem, warum das Menü nicht ausklappt? Wie gesagt im html-code stehen die Unterseiten bereit und wenn ich in der CSS-datei probehalber display:none in display:blockändere zeigt der IE es auch brav an, nur ich will es halt erst bei einem mouseover!