Die Macronavigation klappt im Navigationspfad immer weiter auf. Die Child-Elemente rücken schrittweise immer weiter nach rechts ein.








 

DTML

Der wesentliche Darstellungs-Ansatz besteht im vorliegenden Beispiel in dem durch die Hierarachie-Tiefe bedingten Einzug. Dieser wird erreicht durch ein DTML-generiertes Styling. Desweiteren wird das aktive Objekt mit class ="highlight" deklariert; der Code enthält damit nur noch minimale Gestaltungsinformationen, so dass die Gestaltung fast frei per CSS generiert werden kann. Die umschliessenden DD/DL-Elemente sorgen für browserübergreifend gleichartige Aussenabstände.

<!-- pageelement_Macronavigation -->
<dtml-call "REQUEST.set('_this',getSelf())">
<div id="Macronavigation">
<dl><dd><ul>
<dtml-in "getNavElements(REQUEST,expand_tree=1)">
<dtml-unless "isResource(REQUEST)">
<dtml-if "REQUEST['thisObj'].getParentByLevel(0).id in 
  absolute_url().split('/')">
<dtml-let highlightThis="boolint(REQUEST['thisObj'].id==id)"><li 
  style="padding-left:<dtml-var "getLevel()*11+3">px;
         background-position:<dtml-var "getLevel()*11-5">px 8px;"
  <dtml-if "highlightThis">class="highlight"</dtml-if> 
  ><a href="<dtml-var "getHref2IndexHtml(REQUEST,deep=1)">
  "><dtml-var "getTitlealt(REQUEST)"></a></li>
</dtml-let>
</dtml-if>
</dtml-unless>
</dtml-in>
</ul></dd></dl>
</div>
<!-- /pageelement_Macronavigation -->

CSS

Das CSS trifft die Elemente durch die primäre Selektion über die DIV-ID "Macronavigation"; lediglich die highlight-Variante muss noch explizit gekennzeichnet werden. Die LI-Elemente werden flach sequenziert, damit tabellen-artige Separator-Linien eingeführt werden können. Die Einzüge werden per inline-Style durch den Programm-Code generiert. Die Bullets werden als Hintergrund-Grafiken eingesetzt, da auf diese Weise die Positionierung bzw. die Platzierung bei Zeilenumbrüchen einfacher ist.

/********************************/
/*----- Macronavigation -----*/
/********************************/
#Macronavigation {
	margin: 34px 0px 0px 0px;
	padding: 0;
	border: 0;
	border-top: 5px solid #ccc;
	width:170px;
	}	
#Macronavigation ul {
	padding: 0;
	margin: 0;
	list-style-type: none; 
	}
#Macronavigation ul li {
	margin: 0;
	padding: 3px;
	border: 0;
	border-bottom: 1px solid #fff;
	background-repeat: no-repeat;
	background-position: 0;
	background-image: url(<dtml-var ZMS_COMMON>/that.gif);
	background-color: #ebebeb;
	font-size: small;
	}
#Macronavigation ul li.highlight {
	background-color:#f9f9f9;
	background-image: url(<dtml-var ZMS_COMMON>/this.gif);
	}
#Macronavigation ul li a:link, 
#Macronavigation ul li a:visited {
	color: #0883AC;
	text-decoration:none;
	}
#Macronavigation ul li a:hover {
	color: #FF7600;
	text-decoration:none;
	}
#Macronavigation ul li.highlight a:link,
#Macronavigation ul li.highlight a:visited {
	color:#FF7600;
	text-decoration:none;
	}
#Macronavigation dl,
#Macronavigation dt, 
#Macronavigation dd 
	{
	margin: 0;
	padding: 0;
	border:0;
	}

Erstellt von: Dr. Frank Hoffmann , erstellt am:  27.06.2008 , zuletzt geändert: 27.06.2008