[英]How to prevent my nav menu from covering my website content in mobile view?
當我將屏幕縮小到移動設備時,我當前的導航菜單會覆蓋我的網站內容。 此外,每個菜單項都有可滾動的鏈接,所以每當我點擊一個選項時,它都會向下滾動到網站上的那個部分。
我的問題是我的標題(例如“第 1 節”)被我的菜單覆蓋。
這是我當前的@media 代碼,它將每個菜單項堆疊在一起。
@media only screen and (max-width: 850px) {
.menu-items {
display: flex;
justify-content: center;
align-items: center;
font-size: 1.5rem;
height: 5px;
}
}
這是第一部分的 HTML
<body>
<header class="page__header">
<nav class="navbar__menu">
<!-- Navigation starts as empty UL that will be populated with JS -->
<ul id="navbar__list"></ul>
</nav>
</header>
<main>
<header class="main__hero">
<h1>Landing Page</h1>
</header>
I
<section id="section1" data-nav="Section 1" class="active">
<div class="landing__container">
<h2>Section 1</h2>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi
fermentum metus faucibus
</p>
<p>
Aliquam a convallis justo. Vivamus venenatis, erat eget pulvinar
gravida, ipsum lacus aliquet velit, vel luctus diam ipsum a diam.
Cras eu tincidunt arcu,
</p>
</div>
</section>
是否有一個簡單的修復程序來確保我的菜單將任何 HTML 內容推送到它下面?
這是我使用 Javascript 創建導航菜單的方法
const navMenu = document.querySelectorAll("section");
const navList = document.getElementById("navbar__list");
const items = ["Section 1", "Section 2", "Section 3", "Section 4"];
items.forEach((item, i) => {
const el = document.createElement("a");
el.innerText = item;
el.classList.add("menu-items");
el.setAttribute("id", `menu-${i + 1}`);
el.href = `#section${i + 1}`;
navList.appendChild(el);
});
這是導航欄和頁面 header 的 CSS
.navbar__menu ul {
padding-left: 0;
margin: 0;
text-align: right;
}
.navbar__menu li {
display: inline-block;
}
.navbar__menu .menu__link {
display: block;
padding: 1em;
font-weight: bold;
text-decoration: none;
color: #000;
}
.navbar__menu .menu__link:hover {
background: #333;
color: #fff;
transition: ease 0.3s all;
}
/* Header Styles */
.page__header {
background: #fff;
position: fixed;
top: 0;
width: 100%;
z-index: 5;
}
問題是.page_header
。 它有一個position: fixed
。 這將導致您的 div 和其中的所有內容顯示在頁面的 rest 上方。 為什么? 這是 CSS 定位的優秀指南。
要解決您的問題,這實際上取決於您希望設計的外觀。
您可以將<ul id="navbar__list"></ul>
移到 header 之外。
您可以將.page__header
class 更改為靜態定位在@media
查詢下。 這樣它就固定在大屏幕上,而在小屏幕上正常。
您可以考慮保持原樣(我看到許多移動應用程序都使用這種設計,這並不奇怪),但可以切換菜單(根據導航欄中的按鈕顯示/隱藏),並且當菜單中的項目被點擊,菜單被隱藏。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.