Wenn das Menü nicht bei id 1 beginnen soll sondern an einem bestimmten Punkt vom Seitenbaum gibt man das an dieser Stelle an (ID der Page bei der die Navigationsstruktur starten soll).
CSS Menü
Die fertige Website mit dem css-Menü ist jetzt online: http://www.seeburger.de
Hi littlejoe,
zunächst mal Danke für die Inspiration mit dem Menü von cssplay und deiner Umsetzung in typo3. Ich habe erst vor ca 6 Wochen mit T3 angefangen und habe ein Frage zur Weitergabe der Seiten-ID (field:uid) an dieser Stelle deines Scripts:
IFSUB {
allWrap.dataWrap = <li><a class="drop" href="index.php?id={field:uid}">{field:title}<!--[if IE 7]><!--></a><!--<![endif]--> <table><tr><td>
doNotShowLink = 1
}
Ich benutze auf meiner Testseite RealURL was auch soweit funktioniert, jedoch gibt er mir in deinem Menü in der Adresszeile nur den link mit "...id=xx" aus, ist soweit auch klar da ich ja sage das er die "uid" nutzen soll.
Wie mache ich jetzt aber über TypoScript meiner Seite klar, dass sie auch an dieser Stelle (href="index.php?id={field:uid}) RealUrL oder statische URLs nutzt und übergibt?
Danke Gruß
TakaTuka
Guten Morgen,
ich stelle hier mein TS auch mal rein.
Der von littlejoe ist nicht valide (Wobei man streiten kann, ob der erzeugte Quelltext eh valide sein kann, tabellen in a-tags sind ja nicht konform) zuminmdest wird valider Quelltext vorgetäuscht.. 😃
temp.css_menu = HMENU
temp.css_menu {
special = directory
special.value = 8
wrap = <div class="menu"> | </div>
# Hauptmenue
1 = TMENU
1 {
wrap = <ul> | </ul>
expAll = 1
NO.ATagTitle.field = subtitle//title
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]-->
expAll = 1
NO.ATagTitle.field = subtitle//title
NO.wrapItemAndSub = <li> | </li>
IFSUB = 1
IFSUB {
wrapItemAndSub = <li> | </li>
allWrap = | <!--<![endif]-->
linkWrap = |<!--[if IE 7]><!-->
ATagBeforeWrap = 1
ATagParams = class=drop
}
}
3 < .2
4 < .2
}
@TakaTuka
In meiner Lösung werden Links rchtig dargestellt. Links sollte in TS auch mit typolink erzeugt werden.
Armin
Vielen Dank an Armin
Dies ist wirklich ne funktionierende Lösung endlich, wie lange hab ich versucht, gesucht, rumgebastelt an diesem teil
Danke Danke :p
Hallo Armin,
vielen Dank für dein TS, konnte es mir leider erst jetzt anschauen. Sieht super aus und bringt mich endlich mal ein Schritt weiter. :p
Viele Grüße
TakaTuka
Hallo Armin,
wie lässt sich das Menü so erweitern, daß die aktiven Punkte des horizontalen Menüs in einer definierten Farbe dargestellt werden ?
Grüsse Ralf
biz1968 schriebHallo Armin,
wie lässt sich das Menü so erweitern, daß die aktiven Punkte des horizontalen Menüs in einer definierten Farbe dargestellt werden ?
Grüsse Ralf
Hallo, hier hilft der Zustand ACT
georg
Hallo Georg,
das ist schon klar,
im Firefox funktioniert's auch,
aber der IE (wie immer)
#angry#
http://212.82.35.226/projekte/dfgb/preziehs_home.html?&L=0
temp.nav = HMENU
temp.nav {
special = directory
special.value = 367
excludeUidList =
wrap = |
1 = TMENU
1 {
expAll = 1
wrap = <ul>|</ul></td></tr></table> <!--[if lte IE 6]></a><![endif]-->
noBlur = 1
NO = 1
NO.wrapItemAndSub = <li>|</li>
IFSUB = 1
IFSUB {
allWrap.dataWrap = <li><a class="sub" href="{field:uid}.html?&L=0">{field:title}<!--[if IE 7]><!--></a><!--<![endif]--> <table><tr><td>
doNotShowLink = 1
}
ACTIFSUB = 1
ACTIFSUB {
allWrap.dataWrap = <li><a class="actifsub" href="{field:uid}.html?&L=0">{field:title}<!--[if IE 7]><!--></a><!--<![endif]--> <table><tr><td>
doNotShowLink = 1
}
ACT = 1
ACT {
allWrap.dataWrap = <li><a class="act" href="{field:uid}.html?&L=0">{field:title}</a>
doNotShowLink = 1
}
}
2 < .1
3 < .2
4 < .3
5 < .4
6 < .5
}
/* common styling */
#nav {
display:block;
font-size: 73%;
margin: 0;
padding: 0;
padding-left: 80px;
z-index: 9999;
}
#nav ul {
padding:0;
margin:0;
}
#nav ul li {
float:left;
position:relative;
margin:0;
padding:0;
margin-right: 10px;
}
#nav ul li a,
#nav ul li a:visited {
display:block;
text-decoration:none;
font-weight:bolder;
width:120px;
height:30px;
color:#e28500;
background-color: #fbfafa;
border-left:10px solid #e28500;
padding-left: 5px;
padding-right: 5px;
padding-top: 5px;
line-height:1em;
}
html #nav ul li a,
#nav ul li a:visited {
width:131px;
w\idth:115px;
}
#nav ul li ul {
display: none;
}
table {
border-collapse:collapse;
font-size:1em;
}
/* specific to non IE browsers */
html #nav ul li a.act:link,
html #nav ul li a.act:visited {
background-color: #e28500;
color: #ffffff;
border-left:10px solid #ffffff;
}
#nav ul li a.actifsub,
#nav ul li:link a.actifsub,
#nav ul li:hover a.actifsub,
#nav ul li:visited a.actifsub {
background-color: #e28500;
color: #ffffff;
border-left:10px solid #ffffff;
}
#nav ul li:hover a {
background-color: #e28500;
color: #ffffff;
border-left:10px solid #ffffff;
}
/******************************/
/************* NAV EBENE 1**********/
/******************************/
#nav ul li:hover ul {
display:block;
position:absolute;
top:35px;
left:0px;
width:170px;
}
#nav ul li:hover ul li ul {
display: none; /* triggering durch hover*/
}
#nav ul li:hover ul li a {
display:block;
height:auto;
line-height:1em;
padding:5px 0 5px 5px;
width:170px;
border-left:10px solid #e28500;
color: #e28500;
background-color: #fbfafa;
}
#nav ul li:hover ul li a:hover {
color: #ffffff;
background-color: #e28500;
border-left:10px solid #ffffff;
}
/******************************/
/************* NAV EBENE 2**********/
/******************************/
#nav ul li:hover ul li:hover ul {
display:block;
position:absolute;
left:185px;
top:0;
width:170px;
}
Grüsse Ralf
moin Ralf,
wenn ich das auf den esten Blick sehe zerhaust du den ganzen Quelltext. Es fehlt wrapItemAndSub etc.pp
Du musst nur bei meinem TS oben mit einfügen:
ACT < .NO
ACT = 1
ACT.ATagParams = class=drop
ACTIFSUB < .IFSUB
ACTIFSUB.ATagParams = class=drop
Evtl. Klassennamen anpassen und halt noch das passende CSS anlegen
Armin
Hallo Armin,
habe jetzt Dein TS Scripting übernommen und den Zusatzpart eingefügt
temp.nav = HMENU
temp.nav {
special = directory
special.value = 6634
excludeUidList = 6649,6648
wrap = <div class="nav"> | </div>
# Hauptmenue
1 = TMENU
1 {
wrap = <ul> | </ul>
expAll = 1
NO.ATagTitle.field = subtitle//title
NO.wrapItemAndSub = <li> | </li>
IFSUB = 1
IFSUB {
wrapItemAndSub = <li> | </li>
allWrap = | <!--<![endif]-->
linkWrap = |<!--[if IE 7]><!-->
ATagBeforeWrap = 1
}
ACT < .NO
ACT = 1
ACT.ATagParams = class=dropact
ACTIFSUB < .IFSUB
ACTIFSUB.ATagParams = class=dropact
}
2 = TMENU
2 {
wrap = <table><tr><td><ul> | </ul></td></tr></table><!--[if lte IE 6]></a><![endif]-->
expAll = 1
NO.ATagTitle.field = subtitle//title
NO.wrapItemAndSub = <li> | </li>
IFSUB = 1
IFSUB {
wrapItemAndSub = <li> | </li>
allWrap = | <!--<![endif]-->
linkWrap = |<!--[if IE 7]><!-->
ATagBeforeWrap = 1
ATagParams = class=drop
}
ACT < .NO
ACT = 1
ACT.ATagParams = class=dropact
ACTIFSUB < .IFSUB
ACTIFSUB.ATagParams = class=dropact
}
3 < .2
4 < .2
}
im standard CSS zusätzlich
#nav ul li a.dropact {
background-color: #003a77;
color: #ffffff;
}
#nav ul li:hover ul li a.dropact {
background-color: #003a77;
color: #ffffff;
}
funktioniert in Firefox ganz wunderbar
doch was kommt ins CSS für die Hauptnavigation im IE rein ?
Dort funktionierts nämlich nicht !
Das bischen CSS Anpassung ist mein Problem
#angry#
Grüsse Ralf
Hallo Leute!
Ich bin beim Thema Templates und dropdown Menu absoluter Neuling und habe trotz der vielen Beispiele noch keines zum Laufen gebracht.
Auch der Beitrag von littlejoe auf Seite1 mit dem kompletten Code funktioniert nicht und ich kann mir auch nicht vorstellen dass das jemals läuft, denn:
Das Beispiel für den HTML-Code ist ja angegeben und ich geh mal davon aus, dass es sich dabei um das Template handelt. Dieses Template wird aber nirgends im Code eingebunden, wie soll das also funktionieren?
Gibt es irgendwo ein wirklich komplettes Beispiel, dass auch jeder einbinden kann?
Ich habe keine Lust mich wochenlang mit Templates und Dropdown zu beschäftigen, denn wenn es einmal eingerichtet ist wird es nie wieder geändert!
Viele Grüsse
Hallo mlehner,
das kann schon funktionieren wenn man weiß wie Template und Stylesheet eingebunden werden - hier wurde nur das TS für das entsprechende Menü selbst besprochen und gepostet. Anpassungen sind natürlich nötig wenn es auf Deiner oder einer anderen Seite laufen soll.
Eine Lösung die für alle passt gibt es nicht wirklich und nicht alle hier im Forum ändern ihr Menü nie mehr oder erstellen nur eine einzige Homepage.
Und so ist es sicher doch gut wenn man sich ein bischen mehr damit beschäftigt - Fragen die dann aufkommen können hier im Forum beantwortet werden - wie kann man nun Dir helfen?
Gruß
elfe111
Hallo Elfe,
erstmal vielen Dank für Deine Antwort.
Ich versuche gerade unsere statische Firmenhomepage auf Typo3 umzustellen.
Typo3 läuft soweit schon, die Menüstruktur ist auch schon angelegt.
Jetzt benötige ich noch ein Dropdown-Menü ala http://www.seeburger.de/ (nur das obere waagrechte), das meine Menustruktur aus Typo3 abbildet.
Zusätzlich noch ein einfaches blanko Template,also keine Hintergrundbilder oder ähnliches zum Füllen mit Daten auch aus Typo3.
Ich habe schon so viele Beispiele gesehen, leider hat noch keines davon funktioniert.
Gibt es denn keine Komplettbeispiele, die man sich herunterladen kann und dann an seine Bedürfnisse anpassen kann?
Das Beispiel von littlejoe vom 29.6. scheint ja nicht vollständig zu sein, zumindest läuft es bei mir nicht.
Ich habe alle Dateien herstellt und hochgeladen, das TS-Script habe ich auch eingebunden. Was fehlt denn noch?
Vielen Dank schon mal für Deine Hilfe.
Gruß
Guten Morgen liebe Typo3-Gemeinde
Erstmal herzlichen Dank an littlejoe und ArminB für die hervorragende Arbeit (*Verneigung).
Wenn ich nun das Layermenu mit Firefox betrachte (TS-Script von ArminB) werden mir im Menü (Haupt- und Untermenü) vor den einzelnen Einträgen Punkte dargestellt. Kann mir jemand erläutern warum die Punkte nur im Firefox und nicht im IE dargestellt werden und wie ich diese Punkte weg bekomme?
Für die Hilfe danke ich im voraus.
Gruss allej
Hallo Leute!
Ich hab das ganze jetzt noch einmal neu erstellt und eingebunden, leider ohne Erfolg, es erscheint immer die Meldung dass die Seite nicht konfiguriert ist.
Wo liegt denn der Fehler?
Bitte um baldige Hilfe.
moin allej,
mit Orginal CSS sind im FF keine Punkte zu sehen, http://typo3.intervation.de/snippets/menues/drop-down-menu.html Poste eine URL damit man es sich ansehen kann.
moin mlehner,
das suckerfish-dropdowns, http://typo3.intervation.de/snippets/menues/suckerfish-dropdowns.html lässt sich waagerecht darstellen.
Armin
Guten Morgen ArminB und Typo3-Gemeinde
@ArminB:
Vielen Dank für die rasche Antwort und den Hyplerlink. Genau das was ich suche.
Habe jetzt etwa 18 Std. versucht das Scrpit einzusetzten. Ohne Erfolg, dafür Augenringe und x Tassen Kaffee intus (Vorrat aufgebraucht). Die Homepage betreibe ich zur Zeit local. Ich habe keine Ahnung was ich falsch mache. Mir leuchtet auch die Zeile 57 "lib.demo_ts < temp.css_menu" nicht ein.
Jetzt wird mir das Verzeichnis als Baum vertikal dargestellt. Ich poste mal meine Scripts. Vieleicht siehst Du/Ihr meinen/meine Fehler. Bin für jede Hilfe dankbar (Auch meine Frau 😉 )
page = PAGE
page {
typeNum = 0
includeCSS.layout_nav01 = fileadmin/css/layout_nav01.css
#Designvorlage
10 = TEMPLATE
10.template = FILE
10.template.file = fileadmin/template/layout_nav01.html
10.workOnSubpart = DOKUMENT
10.marks {
MENUE01 = HMENU
MENUE01 {
special = directory
special.value = 41
entryLevel = 1
wrap = <div class="menu"> | </div>
# Hauptmenue
1 = TMENU
1 {
wrap = <ul> | </ul>
expAll = 1
NO.ATagTitle.field = subtitle//title
NO.wrapItemAndSub = <li> | </li>
NO.stdWrap.prepend = COA
NO.stdWrap.prepend.10.wrap = ~ |
IFSUB = 1
IFSUB {
wrapItemAndSub = <li> | </li>
allWrap = | <!--<![endif]-->
linkWrap = |<!--[if IE 7]><!-->
ATagBeforeWrap = 1
}
ACT < .NO
ACT = 1
ACT.ATagParams = class=dropact
ACTIFSUB < .IFSUB
ACTIFSUB.ATagParams = class=dropact
}
2 = TMENU
2 {
wrap = <!--[if lte IE 6]><table><tr><td><![endif]--><ul> | </ul><!--[if lte IE 6]></td></tr></table></a><![endif]-->
expAll = 1
NO.ATagTitle.field = subtitle//title
NO.wrapItemAndSub = <li> | </li>
IFSUB = 1
IFSUB {
wrapItemAndSub = <li> | </li>
allWrap = | <!--<![endif]-->
linkWrap = |<!--[if IE 7]><!-->
ATagBeforeWrap = 1
ATagParams = class=drop
}
}
3 < .2
4 < .2
}
lib.demo_ts < MENUE01
}
}
<html>
<head>
</head>
<body>
<!--###DOKUMENT###-->
<!--[if lte IE 7]><link rel="stylesheet" type="text/css" href="fileadmin/css/msie.css"><![endif]-->
<div id="head">
<div class="pad2"></div>
<div id="head_container">
T I T E L
</div><!-- end of head_container -->
</div><!-- end of head -->
<div id="klickpfad">
###KLICKPFAD###
</div><!-- end of klickpfad -->
<div id="left">
<div class="pad3"></div>
<div id="left_text">
<br><br>
</div><!-- end of left_text -->
</div><!-- end of left -->
<div id="content">
<div class="pad4"></div>
###MENUE01###
<div class="pad5"></div>
</div><!-- end of content -->
<!--###DOKUMENT### ende -->
</body>
</html>
html {
height: 100%;
padding: 0;
margin: 0;
border: 0;
font-size: 12px;
font-family: verdana, tahoma, arial, sans-serif;
background:#ffffff }body {
height:100%;
padding:0;
margin:0;
border:0; }#left {
position: fixed;
left: 0;
top: 0;
height: 100%;
width: 200px;
background: #000099;
font-family: verdana, tahoma, arial, sans-serif;
color: #FFFFFF;
z-index: 5; }#klickpfad {
position: fixed;
top: 80px;
left: 210px;
right: 230px;
padding: 5px 5px 10px 0;
background-color: #FFFFFF;
text-align: left;
font-size: 12px;
font-weight: bold;
color: #989898;
z-index: 4;}#content {
position: relative;
height: 100%;
padding-left: 210px;
padding-right: 250px;
display: block;
overflow: auto;
text-align: justify;
line-height: 1.5;
z-index: 3; }#pad1 {display: block; width: 18px; height: 100px; float: left;}
.pad2 {display: block; height: 10px;}
.pad3 {display: block; height: 80px;}
.pad4 {display: block; height: 100px;}
.pad5 {display: block; height: 45px;}demo .menu {
width:750px;
font-size:0.85em;
position:relative;
z-index:100;
}
/* remove all the bullets, borders and padding from the default list styling */
.demo .menu ul {
padding:0;
margin:0;
list-style-type:none;
}
.demo .menu ul ul {
width:150px;
}
/* float the list to make it horizontal and a relative positon so that you can control the dropdown menu positon */
.demo .menu li {
float:left;
width:150px;
position:relative;
}
/* style the links for the top level */
.demo .menu a, .demo .menu a:visited {
display:block;
font-size:11px;
text-decoration:none;
color:#fff;
width:139px;
height:30px;
border:1px solid #fff;
border-width:1px 1px 0 0;
background:#758279;
padding-left:10px;
line-height:29px;
}
/* a hack so that IE5.5 faulty box model is corrected */
* html .demo .menu a, * html .demo .menu a:visited {
width:150px;
w\idth:139px;
}/* style the second level background */
.demo .menu ul ul a.drop, .demo .menu ul ul a.drop:visited {
background:#d4d8bd url(../../graphics/drop.gif) bottom right no-repeat;
}
/* style the second level hover */
.demo .menu ul ul a.drop:hover{
background:#c9ba65 url(../../graphics/drop.gif) bottom right no-repeat;
}
.demo .menu ul ul :hover > a.drop {
background:#c9ba65 url(../../graphics/drop.gif) bottom right no-repeat;
}
/* style the third level background */
.demo .menu ul ul ul a, .demo .menu ul ul ul a:visited {
background:#e2dfa8;
}
/* style the third level hover */
.demo .menu ul ul ul a:hover {
background:#b2ab9b;
}
/* hide the sub levels and give them a positon absolute so that they take up no room */
.demo .menu ul ul {
visibility:hidden;
position:absolute;
height:0;
top:31px;
left:0;
width:150px;
}
/* another hack for IE5.5 */
* html .demo .menu ul ul {
top:30px;
t\op:31px;
}/* position the third level flyout menu */
.demo .menu ul ul ul{
left:150px;
top:0;
width:150px;
}
/* position the third level flyout menu for a left flyout */
.demo .menu ul ul ul.left {
left:-150px;
}
/* style the table so that it takes no ppart in the layout - required for IE to work */
.demo .menu table {position:absolute; top:0; left:0;}
/* style the second level links */
.demo .menu ul ul a, .demo .menu ul ul a:visited {
background:#d4d8bd;
color:#000;
height:auto;
line-height:1em;
padding:5px 10px;
width:129px
/* yet another hack for IE5.5 */
}
* html .demo .menu ul ul a{
width:150px;
w\idth:129px;
}
/* style the top level hover */
.demo .menu a:hover, .demo .menu ul ul a:hover{
color:#fff;
background:#949e7c;
}
.demo .menu :hover > a, .demo .menu ul ul :hover > a {
color:#fff;
background:#949e7c;
}
/* make the second level visible when hover on first level list OR link */
.demo .menu ul li:hover ul,
.demo .menu ul a:hover ul{
visibility:visible;
}
/* keep the third level hidden when you hover on first level list OR link */
.demo .menu ul :hover ul ul{
visibility:hidden;
}
/* make the third level visible when you hover over second level list OR link */
.demo .menu ul :hover ul :hover ul{
visibility:visible;
}
Nochmals gute Morgen
@mlehner
Hast Du mal nachgesehen, ob Du auf dem Weg zu der Seite ein leeres TS-Feld hast? Ist mir mal passiert. Löschen und gut ist.
Gruss allej
Guten Morgenn allej,
mache. Mir leuchtet auch die Zeile 57 "lib.demo_ts < temp.css_menu" nicht ein.
Die Zeile kopiert den Inhalt von temp.css_menu in lib.demo_ts. Wenn du dir das Orginal TS anschaust, sind alle Angaben erst in dem TLO temp.css_menue beschrieben. Das TLO lib.demo_ts ist ein Object-Pfad in TV.
Du brauchst bei deiner Art der Anwendung die Zeile nicht! Bei dir müsste es dann eh so heißen:
page.10.marks.MENUE01 < temp.css_demo
Dann kannst du die ganze Beschreibung innerhalb von page.10.marks.MENUE01 sparren.
Es gibt zwei gute Gründe so zu arbeiten:
1.) Könnte ich temp.css_demo nun an mehrere Stellen kopieren, müsste nicht über all noch mal das ganze TS schreiben
2.) Erhöht es die Übersicht, wenn ich einzelne Blöcke auslagerest. So kannst du verschiedene Aufgaben auf verschiedene Templates verteilen.
Der Grund warum dein Menü nicht richtig dargestellt wird liegt am CSS!
Du hast:
<div id="content">
<div class="pad4"></div>
###MENUE01###
<div class="pad5"></div>
</div>
Im CSS steht aber:
.demo .menu ul {
padding:0;
margin:0;
list-style-type:none;
}
Du musst also überall im CSS das .demo .menu an deine Umgebung anpassen, also aus ".demo .menu" wird einfach .pad4
Ich sehe schon, ich muss auf meiner Seite die Beschreibung etwas weiter ausführen.
Gruß
Armin