Benutzer Diskussion:Sanktusm
Aus Contao Community Documentation
Hallo, ich möchte ein einfaches Mega Dropdownmenue auf CSS Basis diskutieren, dass ich jüngst programmiert habe. Es ist auf Basis von
http://www.visibilityinherit.com/code/mega-drop-down-demo.php
erstellt.
Hier der Code:
<style type="text/css">
* {
margin:0;
padding:0;
}
html, body {
height:100%;
background:#666;
}
#wrap {
min-height:100%;
width:905px;
margin:-1px auto 0;
background:#ccc;
border:1px solid #000;
border-bottom:0;
}
* html #wrap {
height:100%;
}
/* ---------- Mega Drop Down --------- */
#mega {
list-style:none;
font-weight:bold;
height:2em;
margin:60px -1px 0 0;
}
#mega li {
background:#999;
border:1px solid #000;
margin-left:-1px;
float:left;
width:150px;
text-align:center;
position:relative;
}
#mega li:hover {
background:#eee;
border-bottom:0; /* border-bottom:0; and padding-bottom:1px; keeps <li> and <div> connected */
padding:7px 0 1px 0;
margin-top:-7px;
z-index:1; /* shadow above adjacent li */
}
#mega a {
color:#000;
outline:0;
text-decoration:none;
display:block;
line-height:2em;
}
/* ----------- Hide/Show Div ---------- */
#mega div {
position:absolute;
left:-999em;
margin-top:1px;
width:350px;
padding:0 10px 10px;
border:1px solid #000;
border-top:0;
font-weight:normal;
text-align:left;
background:#eee;
}
#mega li:hover div {
left:-1px;top:auto;
}
#mega li.dif:hover div {
left:-221px;
}
/* --------- Within Div Styles --------- */
#mega div h2 {
background:#999;
font-size:1em;
padding:0 10px;
margin:10px 0 5px 0;
clear:both;
float:left;
width:330px;
position:relative; /* makes above drop shadow */
}
#mega div p {
float:left;
width:106px;
padding-left:10px;
position:relative; /* makes above drop shadow */
}
#mega div p a {
text-decoration:underline;
float:left;
clear:left;
width:100%; /* For IE6/7 */
line-height:1.4;
}
#mega div a:hover, #mega div a:focus, #mega div a:active {
text-decoration:none;
}
/* ---------- Drop Shadow ---------- */
#mega div .s1, #mega div .s2, #mega div .s3 {
position:absolute;
width:100%;height:100%;
}
#mega div .s1 {
background:url(../images/rightcorner.png) 100% 0 no-repeat;
top:1px;right:-9px;
}
#mega div .s2 {
background:url(../images/leftcorner.png) 0 100% no-repeat;
bottom:-9px;left:1px;
}
#mega div .s3 {
background:url(../images/shadow.png) 100% 100%;
top:9px;right:-9px;
}
#mega li:hover .s4 {
background:url(images/li-shadow.png) 100% 0 repeat-y;
position:absolute;
top:0;right:-9px;
height:100%;
padding:0 8px 0 0;
}
* html #mega li:hover .s4 {
background:none;
}
#mega li:hover .dif-s4 {
padding-bottom:9px
}
</style>
<!--[if IE 6]>
<style type="text/css">
body{behavior:url("csshover.htc");}
</style>
<![endif]-->Hier das entsprechende Template:
<?php if($this->level == "level_1") { echo "<ul id=\"mega\">"; } foreach ($this->items as $item) { if($this->level == "level_1"){ echo "</li>"; if ($item['isActive']) echo "<li class=\"mainlevel_topbar_highlight\">"; else echo "<li class=\"mainlevel_topbar\">"; } if($item['subpages'] > $itemslevel_2 AND $this -> level == "level_2") { echo "<div><b class=\"s1\"></b><b class=\"s2\"></b><b class=\"s3\"></b>"; $itemslevel_2++; } if($itemslevel_2) echo "<h2>"; if ($this->level == "level_3" AND $itemslevel_3 == 0) echo "</h2><p>"; ?> <a class="mainlevel_topbar" href="<?php echo $item['href']; ?>"><?php echo $item['link']; ?></a> <?php echo $item['subitems']; ?> <?php if($this->level == "level_3" AND $itemslevel_3 >= 2) echo "<br>"; if($this->level == "level_3") { echo "</p><p>"; $itemslevel_3++; } if($item['subpages'] == $itemslevel_2 AND $this -> level == "level_2") { echo "</p></div>"; } } if($this->level == "level_1") echo "</li></ul>"; ?>
Hi
Ich glaube, dass eine Diskussion im Forum besser aufgehoben ist, da dort mehr Leute es verfolgen können als hier unter einer Benutzer-Diskussion.
--Manitougs 13:08, 1. Mai 2011 (CEST)