gpt4 book ai didi

html - CSS 子菜单错误 : ul#[class] -> position: absolute; No overlap or wrong menu width

转载 作者:行者123 更新时间:2023-11-28 03:33:20 25 4
gpt4 key购买 nike

我是新来的,这是我的第一个问题所以请怜悯我和我蹩脚的英语 ;)

我的 html 导航有错误。我遵循了多个指南,现在我遇到了以下问题:如果我在我的子导航元素上添加命令 position: absolute;,可能会重叠以下内容,但子菜单项不相同大小作为主菜单!如果我删除它,大小是正确的,但我没有重叠!

伙计们,我需要你们的帮助,因为这个元素得到了成绩并且必须在星期一之前完成!

R。精神

我的结果截图: Frame with "postion: absolute" Frame without "postion: absolute"

还有我的代码:

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


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

body
{
/* Für den Gesamten Inhalt gilt */
width: 90%;
margin: auto;

/* Für den Text des gesamten Inhaltes gilt */
font-family: arial;
}

header img
{
width: 100%;
}


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

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

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

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

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

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

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

ul#hauptmenu li:hover #untermenu
{
display: block; /* beim Hovern über übergeordneten Menü, soll das untergeordnete eingeblendet werden */
z-index: 500; /* Untermenüpunkte werden über dem Content angezeigt (Ebenen-technisch) */
}
<!DOCTYPE HTML>
<html lang="de">
<head>
<title>testnavi</title>
<link rel="icon" href="./bilder/icon.ico">

<meta charset="utf-8">
<meta name="Florian Zimmermann, Rudolf Geist & Thomas Kretzer" content="HTML-Projekt: Kletterwelt">
<link rel="stylesheet" type="text/css" href="./css/CWAllgemeinStyle.css">
<!--<link rel="stylesheet" type="text/css" href="./css/testc.css"> -->

</head>

<body>
<header>
<img src="./bilder/headerbild.jpg">

<!--Hinweis zu Navis! Untermenüs stehen innerhalb der Klammern eines Listenelements li !!! -->
<ul class="navi" id="hauptmenu">
<li><a href="#">HOME</a>
<ul class="navi" id="untermenu">
<li><a href="#">NEWS</a></li>
</ul>
</li>
<li><a href="#">VIDEOS</a></li>
<li><a href="#">SCHWIERIGKEITSGRADE</a></li>
<li><a href="#">SICHERUNGSGERÄTE</a>
<ul class="navi" id="untermenu">
<li><a href="#geräteart1">DINGER</a></li>
<li><a href="#geräteart2">TEILE </a></li>
</ul>
</li>
<li><a href="#">ALLGEMEINES</a></li>
</ul>

<img src="./bilder/headerbild.jpg">
</header>
</body>
</html>

注意:我的 index.html 将在一个元素文件夹中。在此文件夹中将有一个“css”文件夹,我的“CWAllgemeinStyle.css”就在其中。

最佳答案

您在 ul#hauptmenu li 上的样式拼写错误。它应该是 position:relative 而不是 position:relativ。这是必需的,因为否则您的绝对位置 ul#hauptmenu ul#untermenu 元素将不会相对于 ul#hauptmenu li 定位。

我已将 position:absolute 添加回 ul#hauptmenu ul#untermenu 以将其从网站流中移除,这样它就不会压低您的内容.我还添加了 width:100% 以便它扩展到父级 li 的宽度。

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


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

body
{
/* Für den Gesamten Inhalt gilt */
width: 90%;
margin: auto;

/* Für den Text des gesamten Inhaltes gilt */
font-family: arial;
}

header img
{
width: 100%;
}


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

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

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

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

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

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

ul#hauptmenu ul#untermenu
{
display: none; /* 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 */
position: absolute;
/* Applied width 100% to it expands to the width of the parent li. */
width:100%;
}

ul#hauptmenu li:hover #untermenu
{
display: block; /* beim Hovern über übergeordneten Menü, soll das untergeordnete eingeblendet werden */
z-index: 500; /* Untermenüpunkte werden über dem Content angezeigt (Ebenen-technisch) */
}
<!DOCTYPE HTML>
<html lang="de">
<head>
<title>testnavi</title>
<link rel="icon" href="./bilder/icon.ico">

<meta charset="utf-8">
<meta name="Florian Zimmermann, Rudolf Geist & Thomas Kretzer" content="HTML-Projekt: Kletterwelt">
<link rel="stylesheet" type="text/css" href="./css/CWAllgemeinStyle.css">
<!--<link rel="stylesheet" type="text/css" href="./css/testc.css"> -->

</head>

<body>
<header>
<img src="./bilder/headerbild.jpg">

<!--Hinweis zu Navis! Untermenüs stehen innerhalb der Klammern eines Listenelements li !!! -->
<ul class="navi" id="hauptmenu">
<li><a href="#">HOME</a>
<ul class="navi" id="untermenu">
<li><a href="#">NEWS</a></li>
</ul>
</li>
<li><a href="#">VIDEOS</a></li>
<li><a href="#">SCHWIERIGKEITSGRADE</a></li>
<li><a href="#">SICHERUNGSGERÄTE</a>
<ul class="navi" id="untermenu">
<li><a href="#geräteart1">DINGER</a></li>
<li><a href="#geräteart2">TEILE </a></li>
</ul>
</li>
<li><a href="#">ALLGEMEINES</a></li>
</ul>

<img src="./bilder/headerbild.jpg">
</header>
</body>
</html>

关于html - CSS 子菜单错误 : ul#[class] -> position: absolute; No overlap or wrong menu width,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44604127/

25 4 0