CSS 在页面加载时影响整个导航菜单的转换

CSS transitions affecting the entire navigation menu on page load

我目前正在尝试为我的网站创建一个导航菜单,我的想法是让菜单上的每个项目在鼠标悬停在上面时弹出一点,以便用户可以集中精力需要时打开。

目前,一旦我加载页面本身,这种转换就会发生在所有导航菜单项上,让它看起来有点令人不安,有点像网站的 'ruining the mood'。

相关CSS代码


<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre><code>html,
body {
  margin: 0;
  padding: 0;
  background-image: linear-gradient(to right, #2cac8c, #84a98c);
}

nav {
  position: fixed;
  top: 0;
  width: 100%;
}
nav, nav li {
  display: inline-flex;
  background-color: rgb(48, 48, 48); 
  flex-direction: row;
  font-family: 'Open Sans', sans-serif;
  font-weight: 800;
  font-size: 24px;
  text-align: right;
  color: white;
}

nav li {
  margin-left: 20px;
  margin-right: 20px;
  transition: font-size 0.5s;
}

nav li:hover {
  font-size: 30px;
}

nav ul a {
  text-decoration: none;
  color: white;
}

#name {
  display: inline-flex;
  font-size: 50px;
  color: white;
  font-family: Arial, Helvetica, sans-serif;
  font-weight: bold;
  margin-left: 20px;
  margin-right: 1100px;
  text-align: center
}
<nav>
    <ul>
        <li id="name">Bqre</li>
        <li><a href="#about">About Me</a></li>
        <li>Web Design</li>
        <li>Resume</li>
        <li>Contact</li>
    </ul>
</nav>

注意:当我尝试将过渡移动到 nav li:hover 元素下时,这确实解决了页面加载问题,但一旦从该项目立即返回到其常规字体大小,而没有按预期花费 0.5 秒。

有什么办法可以解决这个问题吗?
当前加载方式的参考视频:https://www.youtube.com/watch?v=pEEyP16DXoU

如果您更改 font-size 容器将自动调整其大小,这就是您的整个导航都在变化的原因。为什么不使用 transform : scale() 呢? https://codepen.io/mqbaka/pen/vYgeXGJ

html,
body {
  margin: 0;
  padding: 0;
  background-image: linear-gradient(to right, #2cac8c, #84a98c);
}

nav {
  position: fixed;
  top: 0;
  width: 100%;
}
nav, nav li {
  display: inline-flex;
  background-color: rgb(48, 48, 48); 
  flex-direction: row;
  font-family: 'Open Sans', sans-serif;
  font-weight: 800;
  font-size: 24px;
  text-align: right;
  color: white;
}

nav li {
  margin-left: 20px;
  margin-right: 20px;
  transition: transform 0.5s;
}

nav li:hover {
  transform: scale(1.2);
}

nav ul a {
  text-decoration: none;
  color: white;
}

#name {
  display: inline-flex;
  font-size: 50px;
  color: white;
  font-family: Arial, Helvetica, sans-serif;
  font-weight: bold;
  margin-left: 20px;
  margin-right: 1100px;
  text-align: center
}
<nav style='width:100%'>
    <ul>
        <li id="name">Bqre</li>
        <li><a href="#about">About Me</a></li>
        <li>Web Design</li>
        <li>Resume</li>
        <li>Contact</li>
    </ul>
</nav

如果我误解了你的问题,请告诉我。