我将所有更改上传到我的网络托管服务,并在 Google Chrome 上检查了我的网站 (https://cecilia-fornes.tech/accueil.html) 以及我的标题和导航栏(在打开时会转换为汉堡菜单)移动设备)将无法按预期运行。它们预计位于页面顶部的一个块中,并为移动设备提供隐藏菜单,为大屏幕提供可见菜单。然而,它显示了两个菜单,我找不到原因。而且,当我尝试从电脑上的文件夹中打开页面时,一切似乎都很好。我认为这是一个兼容性问题,但我无法弄清楚ts从哪里来。
这是我的代码:
function showResponsiveMenu() { var menu = document.getElementById("topnav_responsive_menu"); var icon = document.getElementById("topnav_hamburger_icon"); var root = document.getElementById("root"); if (menu.className === "") { menu.className = "open"; icon.className = "open"; root.style.overflowY = "hidden"; } else { menu.className = ""; icon.className = ""; root.style.overflowY = ""; } }
/* CSS HEADER CODE */ .title{ font-family: 'lemon_milkbold_italic', 'Times New Roman', 'Arial', serif;; font-size: 150%; text-shadow: 0.01rem 0.01rem $menu-color; color: white; background-color: $p-header-color; margin-top: -40px; margin-left: -8px; height: 85px; width: 100%; z-index: 1; position: absolute; display: block; overflow: hidden; &:before, &:after{ content: ''; position: absolute; top: 0; right: 0; height: 100%; z-index: 1; clip-path: polygon(35% 0, 100% 0%, 100% 100%, 0% 100%); } &:before { background-color: white; animation: showText 1200ms ease-in-out; } &:after { background-color: $menu-color; animation-delay: 500ms; animation: showText 1000ms ease-in-out; } h1{ opacity: 0; animation: animateText 1000ms forwards; } } @keyframes animateText { from { opacity: 0; } to { opacity: 1; } } @keyframes showText{ 0% { width: 0; left: 0; transform: translateX(0); } 50% { width: 100%; transform: translateX(12%); } 100% { transform: translateX(100%); } } /* CSS NAVBAR CODE */ nav { font-size: 2em; float: left; width: 185px; height: 100%; text-align: center; color: black; } nav a { background-color: $menu-color; text-decoration: none; color: black !important; transform: scale(1); transition-property: transform; transition: transform 400ms, background-color 400ms; } .menu { display: inline-block; flex-direction: column; position: relative; text-decoration-line: none; background-color: $menu-color; width: 100%; height: 100%; margin-left: -8px; margin-top: -27px; overflow: auto; text-align: center; top: 0; padding-top: 10%; list-style: none; } .topnav { background-color: $p-header-color; display: flex; align-items: center; width: 100%; } .topnav_link { color: $menu-color; padding: 12px; text-decoration: none; } /* hide responsive menu */ #topnav_hamburger_icon, #topnav_responsive_menu { display: none; } @media only screen and (max-width: 768px) { /* hide classic menu */ #topnav_menu { display: none; } /* position home link at left and hamburger at right */ #home_link { flex-grow: 1; } /* disable horizontal scrolling */ #root { position: relative; overflow-x: hidden; } /* show responsive menu and position at the right of the screen */ #topnav_responsive_menu { display: block; position: absolute; margin: 0; right: 0; top: 0; width: 100vw; height: 100vh; z-index: 99; transform-origin: 0% 0%; transform: translate(200%, 0); transition: transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1); } #topnav_responsive_menu ul { display: flex; flex-direction: column; position: absolute; margin: 0; right: 0; top: 0; min-width: 50vw; height: 100vh; padding: 56px 0 0; text-align: center; background: $menu-color; list-style-type: none; -webkit-font-smoothing: antialiased; } #topnav_responsive_menu li { padding: 12px 24px; } #topnav_responsive_menu a { white-space: nowrap; color: #333; text-decoration: none; } /* And let's slide it in from the right */ #topnav_responsive_menu.open { transform: none; position: fixed; } /* ******************** HAMBURGER ICON ******************** */ /* define size and position of the hamburger link */ #topnav_hamburger_icon { display: block; position: relative; margin: 16px; width: 33px; height: 28px; z-index: 100; -webkit-user-select: none; user-select: none; cursor: pointer; } /* define the style (size, color, position, animation, ...) of the 3 spans */ #topnav_hamburger_icon span { display: block; position: absolute; height: 4px; width: 100%; margin-bottom: 5px; background: white; border-radius: 3px; z-index: 100; opacity: 1; left: 0; -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -o-transform: rotate(0deg); transform: rotate(0deg); -webkit-transition: 0.25s ease-in-out; -moz-transition: 0.25s ease-in-out; -o-transition: 0.25s ease-in-out; transition: 0.25s ease-in-out; } /* set the 3 spans position to look like a hamburger */ #topnav_hamburger_icon span:nth-child(1) { top: 0px; -webkit-transform-origin: left top; -moz-transform-origin: left top; -o-transform-origin: left top; transform-origin: left top; } #topnav_hamburger_icon span:nth-child(2) { top: 12px; -webkit-transform-origin: left center; -moz-transform-origin: left center; -o-transform-origin: left center; transform-origin: left center; } #topnav_hamburger_icon span:nth-child(3) { top: 24px; -webkit-transform-origin: left bottom; -moz-transform-origin: left bottom; -o-transform-origin: left bottom; transform-origin: left bottom; } /* change color when opening the menu */ #topnav_hamburger_icon.open span { background: #333; } /* the first span rotates 45° \ */ #topnav_hamburger_icon.open span:nth-child(1) { width: 110%; -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -o-transform: rotate(45deg); transform: rotate(45deg); } /* the second span disappears */ #topnav_hamburger_icon.open span:nth-child(2) { width: 0%; opacity: 0; } /* the last span rotates -45° / */ #topnav_hamburger_icon.open span:nth-child(3) { width: 110%; -webkit-transform: rotate(-45deg); -moz-transform: rotate(-45deg); -o-transform: rotate(-45deg); transform: rotate(-45deg); } }
<header> <div id="root"> <div id="topnav" class="topnav"> <a id="homelink" class="topnav_link" href="accueil.html"><h1>CECILIA FORNES GUECHI<br> DEVELOPPEUSE WEB FULLSTACK</h1></a> <nav role="navigation" id="topnav_menu" class ="menu"> <ul class="list-unstyled"> <li><a class="topnav_link" href="accueil.html">Accueil</a></li> <li><a class="topnav_link" href="experiences.html">Expériences</a></li> <li><a class="topnav_link" href="benevolat.html">Bénévolats</a></li> <li><a class="topnav_link" href="formations.html">Formations<a></li> <li><a class="topnav_link" href="certif.html">Certifications</a></li> <li><a class="topnav_link" href="competences.html">Compétences</a></li> <li><a class="topnav_link" href="loisirs.html">Loisirs</a></li> <li><a class="topnav_link" href="contact.html">Contact</a></li> </ul> </nav> <a id="topnav_hamburger_icon" href="javascript:void(0);" onclick="showResponsiveMenu()"> <!-- Some spans to act as a hamburger --> <span></span> <span></span> <span></span> </a> <nav role="navigation" id="topnav_responsive_menu"> <ul class="list-unstyled"> <li><a href="accueil.html">Accueil</a></li> <li><a href="experiences.html">Expériences</a></li> <li><a href="benevolat.html">Bénévolats</a></li> <li><a href="formations.html">Formations<a></li> <li><a href="certif.html">Certifications</a></li> <li><a href="competences.html">Compétences</a></li> <li><a href="loisirs.html">Loisirs</a></li> <li><a href="contact.html">Contact</a></li> </ul> </nav> </div> </div> </header>
我尝试查看一些选择器、值和属性兼容性,但一无所获,看起来就像大海捞针一样。
我用 Chrome 查了一下...
看起来工作正常!
桌面:
打开菜单的移动设备: