Beispiel:CSS Menüs7.html
<!DOCTYPE html> <html lang="de"> <head>
<meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" media="screen" href="./Beispiel:Grundlayout.css"> <title>Menü 7 </title> <script> </script> <style> nav > ul {
list-style:none;
// Safari hack, see https://www.scottohara.me/blog/2019/01/12/lists-and-safari.html list-style: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'/%3E");
margin: 0; padding: 0; display: flex; flex-direction: column; position:relative;
}
nav li {
margin: 0.5em 0 0.5em 0.5em; padding: 0; font-size: 1.5rem; flex: 1 1 0%;
}
@media (min-width: 45em) {
nav > ul {
flex-direction: row;
height: 3em;
}
nav li {
flex: 1;
font-size: 1em;
}
}
nav a {
display: block; padding: 0.4em; text-decoration: none; font-weight: bold; text-align: center; border: thin solid var(--background-color); border-radius: .5em; color: gold; background-color: var(--background-color); transition: all .25s ease-in; position: relative;
}
nav li[aria-current] a {
background-color: var(--accent2-color); color: var(--accent1-color);
}
nav .subtitle::after {
position: absolute; content: " ▶"; color: currentColor; display: inline-block; width: 2em; right:0;
}
nav .subtitle:hover::after, nav .subtitle:focus::after{ content:" ▼"; }
nav a:focus, nav a:hover, nav li[aria-current] a:focus, nav li[aria-current] a:hover {
color: var(--background-color); background-color: var(--accent1-color);
}
/* submenu navigation links */ nav .submenu {
visibility: hidden; height: 0; z-index: 1000;
} nav .submenu li {
display: block; /* width: 15em; */
}
/** Show the submenu on hover, focus **/ nav li:hover .submenu, nav li:active .submenu, nav li:focus .submenu {
visibility: visible; height: auto;
} nav li:focus-within .submenu {
visibility: visible; height: auto;
}
- root {
--background-color: midnightblue; --accent1-color: gold; --accent2-color: darkred; --text-color: black; } </style>
</head>
<body>
Menü 7: CSS-only, aber nicht zugänglich!!!
<nav>
- <a href="#">Seite 1</a>
- <a class="subtitle" href="#">Seite 2</a>
- <a href="#">aktuelle Seite</a>
- <a class="subtitle" href="#">Seite 4</a>
- <a href="#">Seite 5</a>
- <a href="#">Seite 6</a>
</nav>
Mit diesem Beispiel kann man die Submenüs …
- … mit der Maus problemlos auf- und zuklappen.
- … auf Touch-Gräten mit kleinen Viewports problemlos auf- und durch Tap auf einen anderen Link zuklappen.
- … mit der Tastatur die Submenüs über das tabindex des li-Elements sichtbar machen, und dann den dazugehörigen Link und die Listeneinträge des Submenüs durchtabben.
Was nicht funktioniert, ist …
- … eine schnelle Tastatur-Ansteuerung der einzelnen Menüpunkte im Hauptmenü ohne den Umweg über die einzelnen Submenüs zu gehen
- … eine Navigation der einzelnen Punkte mithilfe der Pfeiltasten.</p> </ul>
</body>
</html>