• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

ausklappmenü

seppes

Neues Mitglied
Hallo, ich habe mal versucht ein ausklappbares menü in meine seite einzubauen, leider hat es nicht so funktioniert, wie ich es will. Die untermenüs öffnen sich unkontrolliert nebeneinander, was soll ich jetzt tun?

Im head steht:
Code:
<style type="text/css">
* {padding:0px; margin:0px; }

ul li ul
{
         position:absolute ; 
}

ul li
{         
     background-color: #000000;
         float: left;
         margin: 0px 0px;
         width: 100px;
         text-align: center;
         border: solid orange;
         font-weight:bold;
         color:white;

}
ul li:hover ul:first-child
{
         border-top-width:500px;

}

ul
{
         list-style-type: none;
}

ul li ul
{
         display: none;
}


ul li:hover ul
{
         display: block;
         padding:0px;
         margin:0px;

}

ul li:hover ul li
{

         margin:0px;
         border-width: 1px 0;
}

li:hover
{
         background-color: #C0C0C0;
         color:#FFFFFF;
}

body
{
         background-color:#000000
}

ul li:hover ul li a:link
{
        text-decoration: none;

        color: #FFFFFF;
}

</style>
im body:
Code:
<ul>
         <li>
                 Aktuelles
                 <ul>
                         <li><a href="#">Artikel</a></li>
                         <li><a href="#">Bilder</a></li>
                         <li><a href="#">Videos</a></li>
                 </ul>
         </li>

         <li>
                 Infos
                 <ul>
                         <li><a href="#">Sebastian Rech</a></li>
                         <li><a href="#">Pablo Munoz</a></li>
                         <li><a href="#">Zur Seite</a></li>
                 </ul>
         </li>


         <li>
                 Links
                 <ul>
                         <li><a href="#">Ähnliche seiten</a></li>
                         <li><a href="#">Partnerseiten</a></li>
                 </ul>
         </li>


     <li>
                 Archiv
                 <ul>
                         <li><a href="#">Artikel</a></li>
                         <li><a href="#">Bilder</a></li>
                         <li><a href="#">Videos</a></li>
                 </ul>
         </li>


     <li>
                 <a href="#"><font color="#FFFFFF">Impressum</font></a>

         </li>

</ul>
Die adresse der seite ist: http://dumme-leute.webs.com/menu.htm
 
Zuletzt bearbeitet:
Wenn Du die Untermenüpunkte untereinander haben willst, musst Du für diese auch einen Style festlegen. Momentan nutzen sie den Style der Hauptmenü-Listenpunkte. Beispiel für den Einsteig:

Code:
ul li li { float: none; }
 
also wenn ich das "position:absolute ; " rausnehme funktioniert e für sich genommen genause, wie ich will, das problem ist nur, dass es in einer table steht, was kann ich jetzt ändern, damit es funktioniert?
 
Du willst ein Menü in einer Tabelle haben? Was macht das für einen Sinn?
 
ich habe meine seite mit tables unterteilt, ich weis, dass man das heute nicht mehr so macht, aber ich halte es für die einfachste möglichkeit (auch wenn da viele anderer ansicht sind).
deshalb steht das menü in einer tabelle (guck mal auf der seite nach, dann weist du, was ich meine.)
 
Es ist nicht die einfachste Möglichkeit. Denn mit Tabellen kannst du viele probleme kriegen und wenn du denn wirklich mal was verändern willst gibt das noch mehr Ärger.
Wenn du dich mit CSS befassen würdest (Was garnicht so schwer ist) Könnte man die Siete auch so super gestalten.
Damals wurden tabellen genommen, da es keine andere Möglichkeit gab, eine Seite zu designen. Heutzutage sollte HTML dafür benutzt werden, wozu es geschaffen wurde. Und zwar um Inhalt zu verbreiten :D
Design Geschichten schiebt man alle auf CSS
 
ich habe meine seite mit tables unterteilt, ich weis, dass man das heute nicht mehr so macht, aber ich halte es für die einfachste möglichkeit (auch wenn da viele anderer ansicht sind).
Das hat nichts mit Ansicht zu tun, es ist einfach falsch.

Natürlich scheint es für Dich einfacher, wenn Du es bisher nie anders gemacht hast, aber so ist HTML nicht konzipiert worden und so wird es eben auch nicht verwendet. Das bedeutet für Dich nur, dass Du endlich mal HTML lernen musst, dass Du die eigentliche Bedeutung von HTML nämlich noch nicht verstanden hast (Stichwort "Semantik"). Dann kämest Du auch nicht auf die Idee, Layout mit Tabellen zu machen.

Wenn ich in Deinen Code sehe, erkenne ich, dass in der Hinsicht noch einiges im Argen ist. Es wäre höchste Eisenbahn für Dich, das alles mal richtig zu lernen, dann wird die Arbeit für Dich auch viel logischer und leichter. Und Du erzeugst zudem eine Website, die alle benutzen können und nicht für irgendwas "optimiert" werden muss. Dieses "optimieren" ist nämlich immer nur zusätzlicher Arbeitsaufwand, um die Fehler, die man bereits gemacht hat, wieder irgendwie zu umgehen.

Glaub mir. Lerne es richtig und die Hälfte Deiner Probleme löst sich in Nichts auf und alles wird einfacher.

Dass sich Deine Menüpunkte nebeneinander öffnen, liegt daran, dass Du das explizit so angegeben hast! In "ul li" sagst Du "float:left" und positionierst die Listenelemente (Block-Elemente) somit nebeneinander.
 
1)ja, ich habe mir vorgenommen es endlich mal richtig zu lernen und mich nicht auf die falschen sachen zu verlassen, die mich mein leerer in der schule unterichtet hat.

2)wenn wirklich float:left dafür verantwortlich ist, warum funktioniert es dann, wenn ich Position:absolut rausnehme?
 
1) Dann mach das! :-) Wenn Fragen sind, fragen!
2) Wer sagt denn das? Ich finde im Thread niemanden, der sowas behauptet.
Es wurde gesagt, dass bei Dir in der Struktur schon Fehler sind, die Auszeichnung als Tabelle z.B., auf fehlerhaftem Code aufbauend nach Problemen in der Darstellung zu suchen, ist sinnfrei. Denn wenn die Basis schon nicht stimmt, kann das, was darauf aufbaut nicht so funktionieren, wie es soll.
 
Es ist eindeutig bequemer...
Das ist zwar richtig, aber anders wäre es auch schlichtweg sinnfrei.

Diese Seite half mir sehr um mich daran zu gewöhnen:
Das Problem bei der Seite und bei Templates im Allgemeinen ist, dass sie HTML vernachlässigen, oder anders ausgedrückt, ohne HTML-Kenntisse, wird man hier falschen HTML-Code erzeugen.

Denn, ob man nun Layout mit Tabellen macht, oder alles in <div> packt, ist das selbe in grün. Es ist beides falsch.
 
2) Wer sagt denn das? Ich finde im Thread niemanden, der sowas behauptet.
Es wurde gesagt, dass bei Dir in der Struktur schon Fehler sind, die Auszeichnung als Tabelle z.B., auf fehlerhaftem Code aufbauend nach Problemen in der Darstellung zu suchen, ist sinnfrei. Denn wenn die Basis schon nicht stimmt, kann das, was darauf aufbaut nicht so funktionieren, wie es soll.
das warst du selber:
Dass sich Deine Menüpunkte nebeneinander öffnen, liegt daran, dass Du das explizit so angegeben hast! In "ul li" sagst Du "float:left" und positionierst die Listenelemente (Block-Elemente) somit nebeneinander.
 
Alsoooo :D
Position absolut gibt die Position ja absolut an über "left" und "top".
Heisst du kannst sie dir als schwebende Elemente vorstelle, die du irgend wo platzierst.
Wenn die Position jedoch wie im standart reltiv ist, passt es sich der Seite an was die Platzierung angeht. Somit hat float auch nur Einfluss auf Elemente die nicht absolut sind.
Somit hat Efchen schon recht mit der Aussage, dass es an Float: left liegt.
Bitte also dies beachten. Wenn ich was falsch verstanden habe bitte korrigiert mich. Ist noch früh am morgen :D
 
das warst du selber:
Ich schätze, da liegt irgendwo ein Missverständnis vor. Er sagt, er habe irgendwo ein position:absolute rausgenommen, das finde ich tatsächlich nicht mehr, aber er sagt auch, dass es jetzt ginge, für mich hat sich aber nichts verändert.

Vermutlich reden wir von unterschiedlichen Elementen.

float und position im selben Element schließen sich jedenfalls gegenseitig aus und das Ergebnis ist undefiniert.
 
also gut:
wenn position:absolute drin ist öffnen sich die untermenüs nebeneinander, wenn pesition:absolute raus ist öffnen sie sich untereinander, aber dann habe ich ein problem mit den tables, in denen das menü steht.
 
Zurück
Oben