Hallo zusammen,
ich verwende ein TreeControl (http://www.silverstripe.com/tree-control/), um auf- und zuklappbare Baumstrukturen mit einfachen UL-Listen darzustellen. Der Code läßt sich sehr einfach in eigene Seiten einbauen und anpassen.
Einziges Problem im IE6/7 (das, wie ich vermute, ein allgemeines Problem mit Listen im IE ist): Wenn eine Listenzeile (<li><a href="#"><span>Viel Text</span></a></li>) breiter als das die Liste umgebende Div/Frame/Browserfenster wird, rutscht das BackgroundImage von [ul.tree a] (das SeitenIcon) mit dem Text nach links. Hier müßte wie im FF aber nur eine Scrolleiste ohne Verrutschen erscheinen.
Ich vermute das Problem in [ul.tree li], das display:inline verhindert hier schon einen Zeilenumbruch hinter dem backgroundImage, der die Darstellung völlig versaut.
Das HTML: (Icons und Javascript zum auf- und zuklappen finden sich auf der angegebenen Seite):
<ul class="tree">
<li><a href="#" onfocus="blur()"><span id="i0"><data></span></a>
<ul>
<li><a href="#" onfocus="blur()"><span id="i1"><comment> mitteilungen </comment></span></a></li>
<li><a href="#" onfocus="blur()"><span id="i2"><aktuell bild="malerei_vorschau.jpg" ueberschrift="Malerei" kurztext="Lorem ipsum dolor sit amet, consetetur Lorem ipsum dolor sit amet, consetetur" detailseite="studienmaterial/malerei.xml"></aktuell></span></a>
<ul>
<li><a href="#" onfocus="blur()"><span id="i3"><aktuell bild="video_vorschau.jpg" detailseite="studienmaterial/video.xml"></aktuell></span></a></li>
</ul>
</li>
<li><a href="#" onfocus="blur()"><span id="i4"><aktuell detailseite="studienmaterial/skulptur.xml"></aktuell></span></a></li>
<li><a href="#" onfocus="blur()"><span id="i5"><aktuell detailseite="studienmaterial/graphik.xml"></aktuell></span></a></li>
<li><a href="#" onfocus="blur()"><span id="i6"><aktuell bild="video_vorschau.jpg" detailseite="studienmaterial/video.xml"></aktuell></span></a></li>
</ul>
</li>
</ul>
Das CSS:
/*
* CSS for Standard tree layout
* Copyright (C) 2005 SilverStripe Limited
* Feel free to use this on your websites, but please leave this message in the fies
* http://www.silverstripe.com/blog
*/
ul.tree{
width: auto;
padding-left : 0px;
margin-left : 0px;
}
ul.tree img{
border : none;
}
ul.tree, ul.tree ul {
padding-left: 0;
}
ul.tree ul {
margin-left: 16px;
}
ul.tree li.closed ul {
display: none;
}
ul.tree li {
list-style: none;
background: url(../icons/tree/i-repeater.gif) 0 0 repeat-y;
display: inline; /*block;*/
width: auto;
/* background-color:#FFFFFF; */
}
ul.tree li.last {
list-style: none;
background-image: none;
}
/* Span-A: I/L/I glpyhs */
ul.tree span.a {
background: url(../icons/tree/t.gif) 0 50% no-repeat;
display: block;
}
ul.tree span.a.last {
background: url(../icons/tree/l.gif) 0 50% no-repeat;
}
/* Span-B: Plus/Minus icon */
ul.tree span.b {
}
ul.tree span.a.children span.b {
background: url(../icons/tree/minus.gif) 0 50% no-repeat;
cursor: pointer;
}
ul.tree li.closed span.a.children span.b {
background: url(../icons/tree/plus.gif) 0 50% no-repeat;
cursor: pointer;
}
/* Span-C: Spacing and extending tree line below the icon */
ul.tree span.c {
margin-left: 16px;
}
ul.tree span.a.children span.c {
background: url(../icons/tree/i-bottom.gif) 0 50% no-repeat;
}
ul.tree span.a.spanClosed span.c {
background-image: none;
}
/* Anchor tag: Page icon */
ul.tree a {
white-space: nowrap;
overflow: hidden;
padding: 10px 0px 10px 18px;
line-height: 16px;
background: url(../icons/tree/page-file.png) 0 50% no-repeat;
}
ul.tree span.a.children a {
background-image: url(../icons/tree/page-openfoldericon.png);
}
ul.tree span.a.children.spanClosed a {
background-image: url(../icons/tree/page-foldericon.png);
}
/* Unformatted tree */
ul.tree.unformatted li {
background-image: none;
padding-left: 16px;
}
ul.tree.unformatted li li {
background-image: none;
padding-left: 0px;
}
/*
* Divs, by default store vertically aligned data
*/
ul.tree li div {
float: right;
clear: right;
height: 1em;
margin-top: -26px;
}
/* As inside DIVs should be treated normally */
ul.tree div a {
padding: 0;
background-image: none;
min-height: auto;
height: auto;
}
ul.tree li A:link, ul.tree li A:hover, ul.tree li A:visited {
color : #111111;
}
ul.tree li .over{
background-color : pink;
}