如何让导航栏(可能还有其他东西)在右边结束

How to let the Navigation Bar (and maybe other stuff) end on the right

我的导航栏有问题。我已将其宽度设置为 100%。但是我想看到最后,因为它有圆角...

像这样:| (=======) |

不像现在: | (==========|

    #nav {

      height: 60px;

      font-size: 30px;

      line-height: 60px;

      vertical-align: middle;

      text-align: center;

      background-color: #0080FF;

      width: 100%;

      border: 10px solid #16044E;

      border-radius: 20px;

      z-index: 1;

    }

    #nav ul {} #nav li {

      display: inline;

      text-align: center;

      margin: 20px;

    }

    #nav a {

      color: white;

      text-decoration: none;

    }
<ul id="nav">
  <li><a href="">Home</a>
  </li>
  <li><a href="">Courses</a>
  </li>
  <li><a href="">Subjects</a>
  </li>
  <li><a href="">Sign Up</a>
  </li>
  <li><a href="">Log In</a>
  </li>
</ul>

您可以使用 calc 来减少总宽度的 10px (10px = border-width) 但是您应该尝试 box-sizing:border-box 因为浏览器支持因为 calc 有限 Caniuse

#nav {
    height: 60px;
    font-size: 30px;
    line-height: 60px;
    vertical-align: middle;
    text-align: center;
    background-color: #0080FF;
    width: calc(100%-10px);
    border: 10px solid #16044E;
    border-radius: 20px;
    z-index: 1;
}

#nav ul {
}

#nav li {
    display: inline;
    text-align: center;
    margin: 20px;
}

#nav a {
    color: white;
    text-decoration: none;
}
<ul id="nav">
            <li><a href="">Home</a></li>
            <li><a href="">Courses</a></li>
            <li><a href="">Subjects</a></li>
            <li><a href="">Sign Up</a></li>
            <li><a href="">Log In</a></li>
</ul>

将此添加到您的 #nav

box-sizing: border-box;

这将使您的 width: 100%; 也适用于边框部分。

更改#nav如下:

width: 100%;width: auto;

您的 #nav 应如下所示:

#nav {
    height: 60px;
    font-size: 30px;
    line-height: 60px;
    vertical-align: middle;
    text-align: center;
    background-color: #0080FF;
    width: auto;
    border: 10px solid #16044E;
    border-radius: 20px;
    z-index: 1;
}

如果您需要支持旧版浏览器,您可以使用带回调的 calc() CSS 函数,这里是 current support,您必须将其添加到您的 #nav:

#nav{
    width: 98%;
    calc(100%-10px);
}

另一种方法是更改​​ #nav 元素的 box-sizing,因此边框将成为元素宽度的一部分,您可能已经更新了 CSS 中的一些规则,但是它适用于 IE8+、所有移动设备和所有现代浏览器,这里是 caniuse:

#nav{
    padding-left: 10px;
    width: 100%;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}