【问题标题】:How do I get my navbar to move towards the edges如何让我的导航栏向边缘移动
【发布时间】:2023-03-12 03:23:01
【问题描述】:

我只是制作一个常规导航栏,但希望徽标和链接填充整个容器,而不是从中间开始。我知道这是一个简单的解决方案,但我认为唯一的方法是在它们上留出余量但它也分散了我的链接

*{
    box-sizing: border-box;
    margin: 0px;
    padding: 0px;
}

body{
    background: pink;
    
}

nav{
    display: flex;
    justify-content: space-around;
    align-items: center;
    min-height: 8vh;
    background-color: yellow;
}

.logo{
color: whitesmoke;
text-transform:uppercase ;
letter-spacing: 5px;
font-size: 20px;
}

.nav-links{
    display: flex;
    justify-content: space-around;
    width: 25%;
   
}


li{
    list-style-type: none;
}

.nav-links a{
    color: black;
    text-decoration: none;
    letter-spacing: 3px;
    font-weight: bold;
    
}

【问题讨论】:

  • 从导航中删除 justify-content: space-around; 应该可以解决问题
  • 当我这样做时,所有导航链接都会移动到 Logo 所在的一侧。我希望徽标从左侧开始,链接从右侧开始

标签: javascript html css flexbox nav


【解决方案1】:

nav {
  display: flex; 
  background: tomato;
  padding: 1rem
}

.logo {
  margin-right: auto;
}
<nav>
    <a href="#" class="logo">I am the logo</a>
    <div>
      <a href="#">link 1</a>
      <a href="#">link 2</a>
      <a href="#">link 3</a>
      <a href="#">link 4</a>
    </div>
  </nav>

【讨论】:

  • 工作得很好,但你介意解释一下为什么在徽标上放置margin-right也会影响链接吗?只是为了让我有更好的理解
  • 通过设置margin-right auto,我是说使用所有剩余空间。链接没有受到影响,边距推动它们。您可以通过使用以下 css 规则 flex:1 在徽标和链接之间添加跨度来实现相同的结果:1
  • 我也知道这是无关的,但我不能 pm 你,只是想知道你是否从头开始创建一个图片库,最好的方法是什么。 Flexbox、Grid 系统或 tr
  • 网格是最好的解决方案,但它的支持是个问题。我会同时使用 Grid 和 Flexbox。您可以检查 CSS 中是否支持 Grid 只是谷歌如何做到这一点。如果不支持,请使用 Flexbox 作为后备(请记住,您必须维护它)。最后一个解决方案是使用像tailwind这样的css库
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-19
  • 2019-10-21
  • 2019-07-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多