2017-06-17 1 views
0

Ich bin neu hier und das ist meine erste Frage also bitte habe Erbarmen mit mir und meinem gebrochenen Englisch;)CSS-Untermenü Fehler: ul # [Klasse] -> Position: absolut; Keine Überlappung oder falsche Menübreite

Ich habe einen Fehler auf meiner html Navi. Ich folgte mehreren Hilfslinien und habe jetzt das folgende Problem: Wenn ich den Befehl position: absolute; auf meinem subnavi-Element hinzufüge, ist es möglich, den folgenden Inhalt zu überlappen, aber die Untermenüpunkte sind nicht in der gleichen Größe wie das Hauptmenü! Wenn ich es lösche, stimmt die Größe, aber ich habe keine Überlappung!

Bitte Jungs, ich brauche deine Hilfe, denn dieses Projekt hat eine Note und es muss bis Montag fertig sein!

R. Geist

Scrennshots meiner Ergebnisse: Frame with "postion: absolute" Frame without "postion: absolute"

Und mein Code:

/* CSS Style für Kletterwelt - Allgemeine Inhalte v1.01 vom 17.06.2017*/ 
 

 

 
/* Allgemeine Daten & Einstellungen */ 
 
* 
 
{ 
 
\t margin: \t \t 0px; 
 
\t padding: \t 0px; 
 
} 
 

 
body 
 
{ 
 
\t /* Für den Gesamten Inhalt gilt */ 
 
\t width: \t \t \t 90%; 
 
\t margin: \t \t \t auto; 
 
\t 
 
\t /* Für den Text des gesamten Inhaltes gilt */ 
 
\t font-family: \t arial; 
 
} 
 

 
header img 
 
{ 
 
\t width: \t 100%; 
 
} 
 

 

 
/* Navi */ 
 
ul.navi 
 
{ 
 
\t list-style-type:none; 
 
} 
 

 
ul#hauptmenu li 
 
{ 
 
\t width: \t \t \t 19%; \t \t \t /* Aufteilung der Hauptmenüpunkte in relative Größe */ 
 
\t text-align: \t center; 
 
\t position: \t \t relativ; \t /* Untermenüs werden relativ zu ihrem Hauptmenüpunkt zugeordnet */ 
 
\t float: \t \t \t left; 
 
\t margin-right: \t 4px; 
 
} 
 

 
ul#hauptmenu a 
 
{ 
 
\t text-decoration: \t none; \t /* Entfernt Unterstriche der Links */ 
 
\t display: \t \t \t block; \t /* gesamtes Listenelement wird zum anklickbaren Button, nicht nur das Wort */ 
 
\t height: \t \t \t \t 40px; 
 
\t line-height: \t \t 40px; \t /* Wenn Wert mit "height" identisch ist, ist Text vertikal zentriert */ 
 
\t background-color: \t #333333; 
 
\t color: \t \t \t \t white; 
 
\t font-weight: \t \t bold; 
 
\t border: \t \t \t \t 2px solid #333333; 
 
\t border-radius: \t \t 5px; 
 
} 
 

 
ul#untermenu li 
 
{ 
 
\t width: \t 100%; \t /* Untermenüpunkte sind relativ! Also sollen sie die voll zur verfügung stehende Länge nutzen */ 
 
} 
 

 
ul#hauptmenu li:hover > a 
 
{ 
 
\t background-color: #777777; \t /* markiert Buttons übergeordneter Menüs UND den Button, über den man hovert, grau */ 
 
} 
 

 
ul#hauptmenu li:hover a:hover 
 
{ 
 
\t background-color: #FF0000; \t /* markiert Button, über den man hovert, rot (überschreibt Definition)*/ 
 
} 
 

 
ul#hauptmenu ul#untermenu 
 
{ 
 
\t display: \t none; \t /* Untermenüpunkte standardmäßig ausblenden*/ 
 
\t /* position: \t absolute; \t /* HERE!!! WHY?! */ 
 
} 
 

 
ul#hauptmenu li:hover #untermenu 
 
{ 
 
\t display: \t block; \t /* beim Hovern über übergeordneten Menü, soll das untergeordnete eingeblendet werden */ 
 
\t z-index: \t 500; \t /* Untermenüpunkte werden über dem Content angezeigt (Ebenen-technisch) */ 
 
}
<!DOCTYPE HTML> 
 
<html lang="de"> 
 
<head> 
 
\t <title>testnavi</title> 
 
\t <link rel="icon" href="./bilder/icon.ico"> \t 
 
\t 
 
\t <meta charset="utf-8"> 
 
\t <meta name="Florian Zimmermann, Rudolf Geist & Thomas Kretzer" content="HTML-Projekt: Kletterwelt"> 
 
\t <link rel="stylesheet" type="text/css" href="./css/CWAllgemeinStyle.css"> 
 
\t <!--<link rel="stylesheet" type="text/css" href="./css/testc.css"> --> 
 

 
</head> 
 

 
<body> \t \t 
 
\t <header> \t \t 
 
\t \t <img src="./bilder/headerbild.jpg"> 
 
\t 
 
\t \t <!--Hinweis zu Navis! Untermenüs stehen innerhalb der Klammern eines Listenelements li !!! --> 
 
\t \t <ul class="navi" id="hauptmenu"> 
 
\t \t \t <li><a href="#">HOME</a> 
 
\t \t \t \t <ul class="navi" id="untermenu"> 
 
\t \t \t \t \t <li><a href="#">NEWS</a></li> 
 
\t \t \t \t </ul> 
 
\t \t \t </li> 
 
\t \t \t <li><a href="#">VIDEOS</a></li> 
 
\t \t \t <li><a href="#">SCHWIERIGKEITSGRADE</a></li> 
 
\t \t \t <li><a href="#">SICHERUNGSGERÄTE</a> 
 
\t \t \t \t <ul class="navi" id="untermenu"> 
 
\t \t \t \t \t <li><a href="#geräteart1">DINGER</a></li> 
 
\t \t \t \t \t <li><a href="#geräteart2">TEILE \t </a></li> 
 
\t \t \t \t </ul> 
 
\t \t \t </li> \t 
 
\t \t \t <li><a href="#">ALLGEMEINES</a></li> 
 
\t \t </ul> 
 
\t \t 
 
\t \t <img src="./bilder/headerbild.jpg"> 
 
\t </header> 
 
</body> 
 
</html>

Hinweis: Meine index.html wird in einem pr Ojekt-Ordner. In diesem Ordner wird ein "css" -Ordner sein, in dem meine "CWAllgemeinStyle.css" liegt.

+0

Getestet habe ich einige mehr und bekam eine hässliche workarround: ich mit dem folgenden comand und seine fast ok gespielt: ul # Hauptmenu ul # Untermenu { \t Anzeige: \t keiner; \t \t/* Untermenüs Standardmäßig ausblenden */ \t Position: \t absolut; \t Breite: \t \t 17%; } aber vertrauen Sie mir, ich habe keine Ahnung, warum das funktionierte: D –

Antwort

0

Sie wurden auf ul#hauptmenu li falsch geschrieben. Es sollte position:relative nicht position:relativ sein. Dies ist erforderlich, da ansonsten Ihre Position absolut ul#hauptmenu ul#untermenu Element keine Position relativ zu ul#hauptmenu li wäre.

Ich habe position:absolute zurück zu ul#hauptmenu ul#untermenu hinzugefügt, um es aus dem Fluss der Website herauszunehmen, so dass es Ihren Inhalt nicht nach unten drückt. Ich habe auch width:100% hinzugefügt, so dass es auf die Breite des Elternteils li erweitert.

/* CSS Style für Kletterwelt - Allgemeine Inhalte v1.01 vom 17.06.2017*/ 
 

 

 
/* Allgemeine Daten & Einstellungen */ 
 
* 
 
{ 
 
\t margin: \t \t 0px; 
 
\t padding: \t 0px; 
 
} 
 

 
body 
 
{ 
 
\t /* Für den Gesamten Inhalt gilt */ 
 
\t width: \t \t \t 90%; 
 
\t margin: \t \t \t auto; 
 
\t 
 
\t /* Für den Text des gesamten Inhaltes gilt */ 
 
\t font-family: \t arial; 
 
} 
 

 
header img 
 
{ 
 
\t width: \t 100%; 
 
} 
 

 

 
/* Navi */ 
 
ul.navi 
 
{ 
 
\t list-style-type:none; 
 
} 
 

 
ul#hauptmenu li 
 
{ 
 
\t width: \t \t \t 19%; \t \t \t /* Aufteilung der Hauptmenüpunkte in relative Größe */ 
 
\t text-align: \t center; 
 
    /* This style was spent wrong. You spelt it relativ */ 
 
\t position: \t \t relative; \t /* Untermenüs werden relativ zu ihrem Hauptmenüpunkt zugeordnet */ 
 
\t float: \t \t \t left; 
 
\t margin-right: \t 4px; 
 
} 
 

 
ul#hauptmenu a 
 
{ 
 
\t text-decoration: \t none; \t /* Entfernt Unterstriche der Links */ 
 
\t display: \t \t \t block; \t /* gesamtes Listenelement wird zum anklickbaren Button, nicht nur das Wort */ 
 
\t height: \t \t \t \t 40px; 
 
\t line-height: \t \t 40px; \t /* Wenn Wert mit "height" identisch ist, ist Text vertikal zentriert */ 
 
\t background-color: \t #333333; 
 
\t color: \t \t \t \t white; 
 
\t font-weight: \t \t bold; 
 
\t border: \t \t \t \t 2px solid #333333; 
 
\t border-radius: \t \t 5px; 
 
} 
 

 
ul#untermenu li 
 
{ 
 
\t width: \t 100%; \t /* Untermenüpunkte sind relativ! Also sollen sie die voll zur verfügung stehende Länge nutzen */ 
 
} 
 

 
ul#hauptmenu li:hover > a 
 
{ 
 
\t background-color: #777777; \t /* markiert Buttons übergeordneter Menüs UND den Button, über den man hovert, grau */ 
 
} 
 

 
ul#hauptmenu li:hover a:hover 
 
{ 
 
\t background-color: #FF0000; \t /* markiert Button, über den man hovert, rot (überschreibt Definition)*/ 
 
} 
 

 
ul#hauptmenu ul#untermenu 
 
{ 
 
\t display: \t none; \t /* Untermenüpunkte standardmäßig ausblenden*/ 
 
    /* Position absolute required to take it out of the flow of the website so it stops below content being push down */ 
 
\t position: \t absolute; 
 
    /* Applied width 100% to it expands to the width of the parent li. */ 
 
    width:100%; 
 
} 
 

 
ul#hauptmenu li:hover #untermenu 
 
{ 
 
\t display: \t block; \t /* beim Hovern über übergeordneten Menü, soll das untergeordnete eingeblendet werden */ 
 
\t z-index: \t 500; \t /* Untermenüpunkte werden über dem Content angezeigt (Ebenen-technisch) */ 
 
}
<!DOCTYPE HTML> 
 
<html lang="de"> 
 
<head> 
 
\t <title>testnavi</title> 
 
\t <link rel="icon" href="./bilder/icon.ico"> \t 
 
\t 
 
\t <meta charset="utf-8"> 
 
\t <meta name="Florian Zimmermann, Rudolf Geist & Thomas Kretzer" content="HTML-Projekt: Kletterwelt"> 
 
\t <link rel="stylesheet" type="text/css" href="./css/CWAllgemeinStyle.css"> 
 
\t <!--<link rel="stylesheet" type="text/css" href="./css/testc.css"> --> 
 

 
</head> 
 

 
<body> \t \t 
 
\t <header> \t \t 
 
\t \t <img src="./bilder/headerbild.jpg"> 
 
\t 
 
\t \t <!--Hinweis zu Navis! Untermenüs stehen innerhalb der Klammern eines Listenelements li !!! --> 
 
\t \t <ul class="navi" id="hauptmenu"> 
 
\t \t \t <li><a href="#">HOME</a> 
 
\t \t \t \t <ul class="navi" id="untermenu"> 
 
\t \t \t \t \t <li><a href="#">NEWS</a></li> 
 
\t \t \t \t </ul> 
 
\t \t \t </li> 
 
\t \t \t <li><a href="#">VIDEOS</a></li> 
 
\t \t \t <li><a href="#">SCHWIERIGKEITSGRADE</a></li> 
 
\t \t \t <li><a href="#">SICHERUNGSGERÄTE</a> 
 
\t \t \t \t <ul class="navi" id="untermenu"> 
 
\t \t \t \t \t <li><a href="#geräteart1">DINGER</a></li> 
 
\t \t \t \t \t <li><a href="#geräteart2">TEILE \t </a></li> 
 
\t \t \t \t </ul> 
 
\t \t \t </li> \t 
 
\t \t \t <li><a href="#">ALLGEMEINES</a></li> 
 
\t \t </ul> 
 
\t \t 
 
\t \t <img src="./bilder/headerbild.jpg"> 
 
\t </header> 
 
</body> 
 
</html>

Verwandte Themen