如何让导航栏(可能还有其他东西)在右边结束
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;
}
我的导航栏有问题。我已将其宽度设置为 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;
}