CSS-DropDown-Menü (suckerfish?) Problem mit der Breite

Status
Nicht offen für weitere Antworten.

Hasenbein

Grünschnabel
Hallo zusammen.

Ich hoffe ihr könnt mir bei meinem Problem helfen.
Ich habe mir so ein Menü gebastelt wie hier:
http://tutorials.alsacreations.com/deroulant/menu-horizontal2.htm

Das funktioniert auch so weit wie ich mir das vorstelle, ABER

Mein Problem:
Die Menüpunkte haben alle die gleiche Breite, das haut bei mir nicht hin und sieht auch doof aus.
Siehe Anhang.

Ich habe nur eine feste Breite zur Verfügung (400px), da muss das Menü rein.
Ich habe 4 Menü-Punkte:
  1. Home
  2. Unsere Kanzlei
  3. Links
  4. Kontakt/Anfahrt

Für die Punkte "home" und "Links" brauche ich ja nicht die selbe Breite wie für die anderen Beiden.
Unterpunkte habe ich auch nur bei "Unsere Kanzlei", sonst nicht.

Geht das?
Wenn ja, sagt ihr mir auch wie?

Viele Grüße und Dank im voraus
Hasenbein
 

Anhänge

  • 25384attachment.jpg
    25384attachment.jpg
    6 KB · Aufrufe: 268
Hi versuch13

Die css ist im Moment noch im Quelltxt mit drin.

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<?php header('Content-Language: en'); ?><HTML lang=en xml:lang="en" 
xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>Menu déroulant horizontal</TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<SCRIPT type=text/javascript>
<!--
window.onload=montre;
function montre(id) {
var d = document.getElementById(id);
	for (var i = 1; i<=10; i++) {
		if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
	}
if (d) {d.style.display='block';}
}
//-->
</SCRIPT>

<STYLE type=text/css>
BODY {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: white; PADDING-BOTTOM: 0px; MARGIN: 0px; FONT: 70% verdana, arial, sans-serif; PADDING-TOP: 0px
}
DL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
DT {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
DD {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
LI {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
#menu {
	Z-INDEX: 100; LEFT: 0px; WIDTH: 600px; POSITION: absolute; TOP: 0px
}
#menu DL {
	FLOAT: left; MARGIN: 0px 1px; WIDTH: 12em
}
#menu DT {
	BORDER-RIGHT: 0px; BORDER-TOP: 0px; FONT-WEIGHT: normal; BACKGROUND: #ffffff; BORDER-LEFT: 0px; CURSOR: pointer; BORDER-BOTTOM: 0px; TEXT-ALIGN: left
}
#menu DD {
	BORDER-RIGHT: white 1px solid; BORDER-TOP: white 1px solid; BORDER-LEFT: white 1px solid; BORDER-BOTTOM: white 1px solid
}
#menu LI {
	BACKGROUND: #fff; TEXT-ALIGN: left
}
#menu LI A {
	BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: block; BORDER-LEFT: 0px; COLOR: #000; BORDER-BOTTOM: 0px; HEIGHT: 100%; TEXT-DECORATION: none
}
#menu DT A {
	BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: block; BORDER-LEFT: 0px; COLOR: #000; BORDER-BOTTOM: 0px; HEIGHT: 100%; TEXT-DECORATION: none
}
#menu LI A:hover {
	BACKGROUND: #033d88; COLOR: #ffffff
}
#menu DT A:hover {
	BACKGROUND: #033d88
}
#site {
	Z-INDEX: 1; 
	LEFT: 0px; 
	POSITION: absolute; TOP: 15px; 
}
A {
	COLOR: #033d88; TEXT-DECORATION: none
}
</STYLE>

<META content="MSHTML 6.00.2900.2912" name=GENERATOR>
<base target="_self">
</HEAD>
<BODY>
<DIV id=menu>
<DL>
  <DT onmouseover=javascript:montre();><A title="Home" 
  href="http://www.xyz.de/">HOME</A> </DT></DL>
<DL>
  <DT onmouseover="javascript:montre('smenu1');">UNSERE KANZLEI 
  <DD id=smenu1 onmouseover="javascript:montre('smenu1');" 
  onmouseout="javascript:montre('');">
  <UL>
    <LI>
    <A href="http://www.xyz.de/wir.htm#">UEBER UNS</A> 
    <LI>
    <A href="http://www.xyz.de/leistungen.htm#">LEISTUNGEN</A> 
    <LI>
    <A href="http://www.xyz.de/partner.htm#">PARTNER</A> 
    </LI>
    </UL>
    </DD>
    </DL>
<DL>
  <DT onmouseover=javascript:montre();><A title="Links" 
  href="http://www.xyz.de/links.htm#">LINKS</A> </DT></DL>
<DL>
  <DT onmouseover=javascript:montre();><A title="Kontakt & Anfahrt" 
  href="http://www.xyz.de/kontakt.htm#">KONTAKT/ANFAHRT</A> </DT></DL>
</DIV>

<DIV id=site>


<table border="1" width="800" id="table1" style="border-width: 0px" cellspacing="1">
	
	<tr>
		<td background="links.gif" width="398" height="398" style="border-style: none; border-width: medium" colspan="4">&nbsp;</td>
		<td background="haupt.jpg" width="398" height="398" style="border-style: none; border-width: medium">&nbsp;</td>
	</tr>
	<tr>
		<td style="border-style: none; border-width: medium" colspan="4">
		<font face="Verdana" size="1" color="#002E65">© aaa bbb</font></td>
		<td style="border-style: none; border-width: medium">
		<p align="right"><font face="Verdana" size="1" color="#002E65">Impressum</font></td>
	</tr>
</table>




</P></DIV></BODY></HTML>


Das ist eigentlich der gleiche Quelltext wie in der Seite, die ich oben verlinkt habe.
Seit 3 Tagen kämpf ich mich da durch (hab natürlich auch nicht wirklich Plan davon), lösch ein bißchen hier und da, veränder da und dort ein bißchen, mach dann ganz viel wieder rückgängig um da halbwegs durchzusteigen.
Wie gesagt, so habe ich das dann soweit hinbekommen, dass es mir gefällt mit Ausnahme der Breite. Ich kann nur die Breite für alle 4 gleichzeitig ändern, aber das will ich ja nicht.
Muss ich vielleicht für jeden Menüpunkt einen eigenen Wert in der CSS definieren?


Gruß
Hasenbein
 
Für die Breite ist doch dieser Wert zuständig, oder?

#menu DL {
FLOAT: left; MARGIN: 0px 1px; WIDTH: 12em
}

Wenn ich den lösche stehen die Punkte untereinander, siehe Anhang.

Ich habe leider auch keine Ahnung, wie ich für jeden Punkt einen eigenen Wert anlege, meine Versuche sind da käglich gescheitert.

Welcher Wert DL, DD, DT usw. müsste denn da erweitert werden?

Gruß
Hasenbein
 

Anhänge

  • 25386attachment.jpg
    25386attachment.jpg
    5,5 KB · Aufrufe: 113
Zuletzt bearbeitet:
Ich würde es ganz anders angehen:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
 <title>Suckerfish</title>
<script type="text/javascript"><!--//--><![CDATA[//><!--
startList = function() {
    if (document.all&&document.getElementById) {
        navRoot = document.getElementById("nav");
        for (i=0; i<navRoot.childNodes.length; i++) {
            node = navRoot.childNodes[i];
            if (node.nodeName=="LI") {
                node.onmouseover=function() {
                    this.className+=" over";
                }
                node.onmouseout=function() {
                    this.className=this.className.replace(" over", "");
                }
            }
        }
    }
}
window.onload=startList;
//--><!]]>
</script>

<style type="text/css">
body {
    font-family: arial, helvetica, serif;
}
ul { 
    padding: 0;
    margin: 0;
    list-style: none;
}
li {
    float: left;
    position: relative;
    padding:0 6px 0 6px;
}
li ul { 
    display: none;
    position: absolute;
    top: 1em;
    left: 0;
}
li ul li {
    float:none;
    padding:0;
    width:100px;
}
li>ul { 
    top: auto;
    left: auto;
}
li:hover ul, li.over ul { 
    display: block;
}
</style>

</head>
<body>

<ul id="nav">

    <li>Home</li>

    <li>Über unsere Kanzlei
        <ul>
            <li>Sub1</li>
            <li>Sub2</li>
            <li>Sub3</li>
        </ul>
    </li>

    <li>Links</li>
    
    <li>Kontakt / Anfahrt</li>

</ul>

</body>
</html>


Gruß
 
Zuletzt bearbeitet:
@versuch13

Ich bin für jeden Vorschlag dankbar. :)
Werde mich gleich mal intensiv mit Deinem beschäftigen.

Erfolgs- oder Misserfolgsmeldung erfolgt dann später.

Bis hierhin auf jeden Fall schon einmal ein fettes DANKE SEHR.

Gruß
Hasenbein
 
Moin Moin.

Ich habe den Vorschlag mal übernommen und ein bißchen mit rumgespielt.
Ein paar Sachen bekomme ich nicht hin. Siehe Anhang

Normal, d.h. ohne Mauskontakt, sieht alles super aus.
Bei Mauskontakt habe ich einen unschönen kleinen weißen Balken zwischen Navigation und Inhalt. Bekommt man den irgendwie weg?

Schwerwiegender ist aber mein Problem mit dem Untermenü.
Für die Navigation habe ich die Schriftfarbe blau, bei Mauskontakt wird es dann weiß mit blauem Hintergrund.
Dadurch sind aber die Links in der Subnavigation nicht zu sehen, nur bei Mauskontakt.
Ich bekomme das nicht hin, dass ich für Hauptnavi und Subnavi 2 unterschiedliche Farben definiere. Die Links in der Subnavi sollen immer weiß sein.
Außerdem klappt das Untermenü zu schnell wieder zu, wenn ich z.B. die Maus sehr langsam nach unten bewege kommt es vor, dass das Menü wieder zuklappt bevor ich einen Punkt erreiche.

Meine Wunschoptik habe ich auch mal in den Anhang mit reingepackt.
Wäre das in dieser Art überhaupt möglich oder muss ich mich davon verabschieden?


Ich hoffe, ihr könnt mir da weiterhelfen.

Ach so, den Code setze ich auch mal rein:

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
 <title>Suckerfish</title>
<script type="text/javascript"><!--//--><![CDATA[//><!--
startList = function() {
    if (document.all&&document.getElementById) {
        navRoot = document.getElementById("nav");
        for (i=0; i<navRoot.childNodes.length; i++) {
            node = navRoot.childNodes[i];
            if (node.nodeName=="LI") {
                node.onmouseover=function() {
                    this.className+=" over";
                }
                node.onmouseout=function() {
                    this.className=this.className.replace(" over", "");
                }
            }
        }
    }
}
window.onload=startList;
//--><!]]>
</script>

<style type="text/css">
body {
    font-family: verdana, arial, helvetica, serif;
}
ul { 
    padding: 0;
    margin: 0;
    list-style: none;
    FONT-SIZE: 8pt;
    COLOR:#033d88;
        
}
li {
    float: left;
    position: relative;
    padding:0 6px 0 1px;    
}
li ul { 
    display: none;
    position: absolute;
    top: 1em;
    left: 0;
}
li ul li {
    float:none;
    padding:0;
    width:100px;
}
li>ul { 
    top: auto;
    left: auto;
}


ul :hover { 
    BACKGROUND: #033d88; COLOR: #ffffff
}


li A {
	COLOR: #033d88; TEXT-DECORATION: none
}

li:hover ul, li.over ul { 
    display: block;
    BORDER-RIGHT: white 1px solid; BORDER-TOP: white 1px solid; BORDER-LEFT: white 1px solid; BORDER-BOTTOM: white 1px solid;
    BACKGROUND: #033d88; COLOR: #ffffff
    
}


</style>

	<base target="_self">

</head>
<body>

<ul id="nav">

    <li><A title="Home" 
  href="http://www.xyz.de/">HOME</A></li>

    <li>&nbsp;&nbsp;&nbsp; <A title="Über uns" href="http://www.xyz.de/">ÜBER UNSERE KANZLEI</A>
        <ul style="position: absolute; left: 28px; top: 15px; width:121px">
            <li><A title="Über uns" href="http://www.xyz.de/">ÜBER UNS</A></li>
            <li><A title="Leistungen" href="http://www.xyz.de/">LEISTUNGEN</A></li>
            <li><A title="Partner" href="http://www.xyz.de/">PARTNER</A></li>
        </ul>
    </li>

    <li>&nbsp;&nbsp;&nbsp;&nbsp; <A title="Links" 
  href="http://www.xyz.de/">LINKS</A></li>
    
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A title="Kontakt & Anfahrt" 
  href="http://www.xyz.de/">KONTAKT/ANFAHRT</A></li>

</ul>

<table border="1" width="800" id="table1" style="border-width: 0px" cellspacing="1">
	
	<tr>
		<td background="links.gif" width="398" height="398" style="border-style: none; border-width: medium" colspan="4">&nbsp;</td>
		<td background="haupt.jpg" width="398" height="398" style="border-style: none; border-width: medium">&nbsp;</td>
	</tr>
	<tr>
		<td style="border-style: none; border-width: medium" colspan="4">
		<font face="Verdana" size="1" color="#002E65">© </font></td>
		<td style="border-style: none; border-width: medium">
		<p align="right"><font face="Verdana" size="1" color="#002E65">Impressum</font></td>
	</tr>
</table>


</body>
</html>


Gruß
Hasenbein
 

Anhänge

  • 25393attachment.jpg
    25393attachment.jpg
    56,3 KB · Aufrufe: 283
Jetzt mal so auf die schnelle. Ein paar Kleinigkeiten mußt du schon noch ändern.


HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
 <title>Suckerfish</title>
<script type="text/javascript"><!--//--><![CDATA[//><!--
startList = function() {
    if (document.all&&document.getElementById) {
        navRoot = document.getElementById("nav");
        for (i=0; i<navRoot.childNodes.length; i++) {
            node = navRoot.childNodes[i];
            if (node.nodeName=="LI") {
                node.onmouseover=function() {
                    this.className+=" over";
                }
                node.onmouseout=function() {
                    this.className=this.className.replace(" over", "");
                }
            }
        }
    }
}
window.onload=startList;
//--><!]]>
</script>

<style type="text/css">
* {
    margin:0;
    padding:0;
    border:none;
}
body {
    font-family: verdana, arial, helvetica, serif;
}
ul { 
    padding: 0;
    margin: 0;
    list-style: none;
    FONT-SIZE: 8pt;
    COLOR:#033d88;        
}
ul li {
    float: left;
    position: relative;
}
ul li a {
    display:block;
    padding:3px 6px 3px 6px;   
}
ul li a:hover {
    display:block;
    padding:3px 6px 3px 6px;   
    background:#033d88;
    color:#fff;
}
li ul { 
    display: none;
    margin:18px 0 0 13px;
    position:absolute;
    top:0;
}
li ul li {
    float:none;
    padding:0;
    width:100px;
}
li ul li a {
    display:block;
    padding:3px 6px 3px 6px;   
    background:#033d88;
    color:#fff;
}
li ul li a:hover {
    display:block;
    padding:3px 6px 3px 6px;   
    background:#fff;
    color:#033d88;
}
li>ul { 
    top: 0;
    left: 0;
}
li a {
    color: #033d88; text-decoration: none
}

li:hover ul, li.over ul { 
    display: block;
    background: #033d88; 
    color: #ffffff    
}


</style>

    <base target="_self" />

</head>
<body>

<ul id="nav">

    <li><a title="Home" href="http://www.xyz.de/">HOME</a></li>

    <li><a title="Über uns" href="http://www.xyz.de/">ÜBER UNSERE KANZLEI</a>
        <ul>
            <li><a title="Über uns" href="http://www.xyz.de/">ÜBER UNS</a></li>
            <li><a title="Leistungen" href="http://www.xyz.de/">LEISTUNGEN</a></li>
            <li><a title="Partner" href="http://www.xyz.de/">PARTNER</a></li>
        </ul>
    </li>

    <li><a title="Links" href="http://www.xyz.de/">LINKS</a></li>
    
    <li><a title="Kontakt &amp; Anfahrt" href="http://www.xyz.de/">KONTAKT/ANFAHRT</a></li>

</ul>        


</body>
</html>
 
Mein Rechner streikte (wohl Hitzeprobleme), deswegen kann ich erst jetzt antworten.
Ich bin auch bis jetzt noch nicht wirklich dazu gekommen Deinen neuen Vorschlag auszuprobieren.
Für einen ersten Eindruck hat es aber noch gereicht.
Den fand ich allerdings schon einmal überzeugend.

Ich hoffe, dass ich ab hier alleine weiter komme.


Vielen Dank für deine schnelle und geduldige Hilfe!!

P.S.
Ich bin jetzt mal mutig und erklär hiermit mein Problem für erledigt.
 
Status
Nicht offen für weitere Antworten.
Zurück