Сделать подменю раскрывающимся по клику

  • Автор темы NSolist
  • 25
  • Обновлено
  • 13, May 2024
  • #1
Мне удалось решить эту проблему. Я пытаюсь сделать так, чтобы раскрывающиеся списки «О программе» и «Комнаты» могли расширяться только при нажатии и отображать небольшую стрелку, похожую на https://www.syracuse.edu/

в раскрывающемся списке «Информация для». При переходе по вкладкам он может работать как есть.



Также я заметил, что при перемещении по меню и перемещении назад (shift+tab) он не возвращается в раскрывающийся список, почему это так? Другая проблема заключается в том, что когда я сжимаю окно, чтобы отобразить быстрое меню, и просматриваю меню с помощью табуляции, ссылка «О программе» и «Комнаты» пропускается.



Почему? Вот код, который у меня есть, спасибо.
 

<!DOCTYPE html>

<html lang="en">

<head>

<meta name="viewport" content="ширина = ширина устройства, начальный масштаб = 1">

<!--Author URL: [URL='https://lumtu.com/yti/Z5VV5ZGpodHRwczovL2NvZGVwZW4uaW8vYW5kb3JuYWd5L3Blbi9STmS9i']https://codepen.io/andornagy/pen/RNeydj[/URL]

Description: A Generic Hierarchical Menu Navigation

Version: 1-->

<style>

/* CSS Document */

body {

background: #212121;

font-size:22px;

line-height: 32px;

color: #ffffff;

margin: 0;

padding: 0;

word-wrap:break-word !important;

font-family: 'Open Sans', sans-serif;

height: 100vh; /*100% of the viewport*/

display: flex;

flex-direction: column;

}

.scroll {

overflow-y: scroll;

}

h1 {

font-size: 60px;

text-align: center;

color: #FFF;

}

h3 {

font-size: 30px;

line-height: 34px;

text-align: center;

color: #FFF;

}

h3 a {

color: #FFF;

}

a {

color: #FFF;

}

h1 {

margin-top: 100px;

text-align:center;

font-size:60px;

line-height: 70px;

font-family: 'Bree Serif', 'serif';

}

#container {

margin: 0 auto;

max-width: 890px;

}

p {

text-align: center;

}

.toggle,

[id^=drop] {

display: none;

}

/* Giving a background-color to the nav container. */

nav {

margin:0;

padding: 0;

background-color: #E64A19;

}

#logo {

display: block;

padding: 0 30px;

float: left;

font-size:20px;

line-height: 60px;

}

/* Since we'll have the "ul li" "float:left"

* we need to add a clear after the container. */

nav:after {

content:"";

display:table;

clear:both;

}

/* Removing padding, margin and "list-style" from the "ul",

* and adding "position:reltive" */

nav ul {

float: right;

padding:0;

margin:0;

list-style: none;

position: relative;

}

/* Positioning the navigation items inline */

nav ul li {

margin: 0px;

display:inline-block;

float: left;

background-color: #E64A19;

}

/* Styling the links */

nav a {

display:block;

padding:14px 20px;

color:#FFF;

font-size:17px;

text-decoration:none;

}

nav ul li ul li:hover { background: #000000; }

/* Background color change on Hover */

nav a:hover {

background-color: #000000;

text-decoration: underline;

}

/* Hide Dropdowns by Default

* and giving it a position of absolute */

nav ul ul {

display: none;

position: absolute;

/* has to be the same number as the "line-height" of "nav a" */

top: 60px;

}

/* Display Dropdowns on Hover */

nav ul li:hover > ul {

display:inherit;

}

/* Fisrt Tier Dropdown */

nav ul ul li {

width:170px;

float:none;

display:list-item;

position: relative;

}

/* Second, Third and more Tiers

* We move the 2nd and 3rd etc tier dropdowns to the left

* by the amount of the width of the first tier.

*/

nav ul ul ul li {

position: relative;

top:-60px;

/* has to be the same number as the "width" of "nav ul ul li" */

left:170px;

}

/* Making dropdowns tabbable */

li ul {display: none;}

li:focus-within ul,

li:hover ul {display: block;}

/* Media Queries

--------------------------------------------- */

@media all and (max-width : 768px) {

#logo {

display: block;

padding: 0;

width: 100%;

text-align: center;

float: none;

}

nav {

margin: 0;

}

/* Hide the navigation menu by default */

/* Also hide the */

.toggle + a,

.menu {

display: none;

}

/* Stylinf the toggle lable */

.toggle {

display: block;

background-color: #E64A19;

padding:14px 20px;

color:#FFF;

font-size:17px;

text-decoration:none;

border:none;

}

.toggle:hover {

background-color: #000000;

}

/* Display Dropdown when clicked on Parent Lable */

[id^=drop]:checked + ul {

display: block;

}

/* Change menu item's width to 100% */

nav ul li {

display: block;

width: 100%;

}

nav ul ul .toggle,

nav ul ul a {

padding: 0 40px;

}

nav ul ul ul a {

padding: 0 80px;

}

nav a:hover,

nav ul ul ul a {

background-color: #000000;

}

nav ul li ul li .toggle,

nav ul ul a,

nav ul ul ul a{

padding:14px 20px;

color:#FFF;

font-size:17px;

}

nav ul li ul li .toggle,

nav ul ul a {

background-color: #212121;

}

/* Hide Dropdowns by Default */

nav ul ul {

float: none;

position:static;

color: #ffffff;

/* has to be the same number as the "line-height" of "nav a" */

}

/* Hide menus on hover */

nav ul ul li:hover > ul,

nav ul li:hover > ul {

display: none;

}

/* Fisrt Tier Dropdown */

nav ul ul li {

display: block;

width: 100%;

}

nav ul ul ul li {

position: static;

/* has to be the same number as the "width" of "nav ul ul li" */

}

}

@media all and (max-width : 330px) {

nav ul li {

display:block;

width: 94%;

}

}

</style>

<title>Menu Navigation Test</title>

</head>

<body>

<header> <nav>

<div id="logo">Syracuse University Libraries</div>

<label for="drop" class="toggle">Menu</label>

<input type="checkbox" id="drop" />

<ul class="menu">

<li><a href="#">Home</a></li>

<li>

<!-- First Drop Down -->

<label for="drop-1" class="toggle">About</label>

<a href="#">About</a>

<ul>

<li><a href="#">Departments</a></li>

<li><a href="#">News</a></li>

</ul>

</li>

<li>

<!-- First Drop Down -->

<label for="drop-2" class="toggle">Rooms</label>

<a href="#">Rooms</a>

<input type="checkbox" id="drop-2"/>

<ul>

<li><a href="#">Resources</a></li>

<li><a href="#">Links</a></li>

<li>

<!-- Second Drop Down -->

<label for="drop-3" class="toggle">Spaces</label>

<a href="#">Rooms</a>

<input type="checkbox" id="drop-3"/>

</li>

</ul>

</li>

<li><a href="#">Special Collections</a></li>

<li><a href="#">Giving</a></li>

<li><a href="#">More</a></li>

</ul>

</nav></header>

<!-- Sample Text -->

<section class="scroll" id="content"><h1><p>This is a Generic Hierarchical Menu Navigation.</p></h1>

<p>This is a Generic Hierarchical Menu Navigation.</p>

<p>This is a Generic Hierarchical Menu Navigation.</p>

<p>This is a Generic Hierarchical Menu Navigation.</p>

<p>This is a Generic Hierarchical Menu Navigation.</p>

<p>This is a Generic Hierarchical Menu Navigation.</p>

<p>This is a Generic Hierarchical Menu Navigation.</p>

<p>This is a Generic Hierarchical Menu Navigation.</p>

<p>This is a Generic Hierarchical Menu Navigation.</p></section>

<nav><footer>

Copyright © 2020 Syracuse University Libraries

</footer> </nav>

<!-- Core Javascript Bottom -->

<script src="/assets/plugins/jquery-1.12.3.min.js" type="text/javascript"></script>

<script src="/assets/plugins/back-to-top.js" type="text/javascript"></script>

</body>

</html>

Код (разметка):

NSolist


Рег
09 Oct, 2014

Тем
1

Постов
2

Баллов
12
Тем
49554
Комментарии
57426
Опыт
552966

Интересно