Css 导航栏 (css&html) 问题
Css navigation bar (css&html) issue
所以,我有这个导航栏:
我想给它加上边框,但它变大了,我不喜欢:
我试着设置导航栏的高度,但是链接放不下了,也没办法把它们放回去:
请帮忙。
代码(CSS):
#navigation {
margin: 0 auto;
background-color: #FFFFFF;
//font-family: lkth;
border: double;
border-width: 5px;
border-color: #663D07;
border-radius: 10px;
height: 40px;
}
#navLi {
display: inline-block;
margin-right: 10px;
}
.navA {
color: #000000;
}
代码(HTML):
<div id="navigation">
<ul id="navUl">
<li id="navLi"><a class="navA" href="#"><p>Page d'accueil</p></a></li>
<li id="navLi"><a class="navA" href="#"><p>Evénements</p></a></li>
<li id="navLi"><a class="navA" href="#"><p>Contactez nous</p></a></li>
</ul>
</div>
编辑:
如果我将 navLi 显示为块并将 Navigation 显示为内联块,我会得到这个:
尝试将box-sizing: border-box;
设置为导航。这样边框不应加起来等于块尺寸。
#navigation {
margin: 0 auto;
background-color: #FFFFFF;
/* font-family: lkth; */
border: double;
border-width: 5px;
border-color: #663D07;
border-radius: 10px;
height: 40px;
box-sizing: border-box;
}
最简单的选择是将 box-sizing: border-box;
添加到 #navigation
,但您也可以尝试使用 margin:-5px;
。我修复了您的示例的语义并向其添加了 margin:-5px
。希望这有帮助。
#navigation {
margin: 0 auto;
background-color: #FFFFFF;
//font-family: lkth;
border: double;
border-width: 5px;
border-color: #663D07;
border-radius: 10px;
height: 40px;
list-style-type:none;
}
#navigation ul {
margin:-5px;
}
#navigation li {
display: inline-block;
margin-right: 10px;
}
#navigation a {
color: #000000;
}
<div id="navigation">
<ul>
<li><a href="#"><p>Page d'accueil</p></a></li>
<li><a href="#"><p>Evénements</p></a></li>
<li><a href="#"><p>Contactez nous</p></a></li>
</ul>
</div>
这是您编辑的代码:
#navigation {
margin: 0 auto;
background-color: #FFFFFF;
border: double;
border-width: 5px;
border-color: #663D07;
border-radius: 10px;
height: 40px;
}
#navUl{
margin: 0 auto;
width: 500px;
padding-top: 10px;
}
#navLi {
display: inline-block;
height: 40px;
}
<div id="navigation">
<ul id="navUl">
<li id="navLi"><a class="navA" href="#">Page d'accueil</a></li>
<li id="navLi"><a class="navA" href="#">Evénements</a></li>
<li id="navLi"><a class="navA" href="#">Contactez nous</a></li>
</ul>
</div>
你可以这样做:
#navigation {
margin: 0 auto;
background-color: #FFFFFF;
//font-family: lkth;
border: double;
border-width: 5px;
border-color: #663D07;
border-radius: 10px;
height: 40px;
display: block;
}
#navigation li {
margin: 0 10px 0 0;
float: left;
padding: 0;
list-style: none;
line-height: 10px;
}
#navigation a {
color: #000000;
}
<div id="navigation">
<ul id="navUl">
<li><a href="#">Page d'accueil</a></li>
<li><a href="#">Evénement</a></li>
<li><a href="#">Contactez nous</a></li>
</ul>
</div>
您可以直接在导航中定位 li 和 a,不需要为此指定 classes。我添加了列表样式:none,因为您不希望您的列表带有项目符号。还将 display: inline-block 替换为 float: left,基本上做同样的事情。边距是 shorthand for margin-top: 0px, margin-right: 10px, margin-bottom: 0px and margin-left: 0px;
作为最后一点,行高:10px;这会将您的链接排在中间。
还有个小提示,id不能重复使用! id 总是 unique,如果你想重复使用它,请改用 class。
没有理由将段落放在 link 标签内。
段落标签默认有一些边距,使导航栏更高。
也是无序的列表默认有边距,这使得它更高。
所以最简单的方法是删除段落标签。
即使这还不够,你也可以删除无序列表的边距。
看看这个 JSFiddle:
#navigation {
margin: 0 auto;
background-color: #FFFFFF;
//font-family: lkth;
border: double;
border-width: 5px;
border-color: #663D07;
border-radius: 10px;
}
#navLi {
display: inline-block;
margin-right: 10px;
}
/* #navUl {
margin: 0;
} */
/* If thats not enought you can uncomment the above code */
.navA {
color: #000000;
}
<div id="navigation">
<ul id="navUl">
<li id="navLi"><a class="navA" href="#">Page d'accueil</a></li>
<li id="navLi"><a class="navA" href="#">Evénements</a></li>
<li id="navLi"><a class="navA" href="#">Contactez nous</a></li>
</ul>
</div>
所以,我有这个导航栏:
我想给它加上边框,但它变大了,我不喜欢:
我试着设置导航栏的高度,但是链接放不下了,也没办法把它们放回去:
请帮忙。
代码(CSS):
#navigation {
margin: 0 auto;
background-color: #FFFFFF;
//font-family: lkth;
border: double;
border-width: 5px;
border-color: #663D07;
border-radius: 10px;
height: 40px;
}
#navLi {
display: inline-block;
margin-right: 10px;
}
.navA {
color: #000000;
}
代码(HTML):
<div id="navigation">
<ul id="navUl">
<li id="navLi"><a class="navA" href="#"><p>Page d'accueil</p></a></li>
<li id="navLi"><a class="navA" href="#"><p>Evénements</p></a></li>
<li id="navLi"><a class="navA" href="#"><p>Contactez nous</p></a></li>
</ul>
</div>
编辑:
如果我将 navLi 显示为块并将 Navigation 显示为内联块,我会得到这个:
尝试将box-sizing: border-box;
设置为导航。这样边框不应加起来等于块尺寸。
#navigation {
margin: 0 auto;
background-color: #FFFFFF;
/* font-family: lkth; */
border: double;
border-width: 5px;
border-color: #663D07;
border-radius: 10px;
height: 40px;
box-sizing: border-box;
}
最简单的选择是将 box-sizing: border-box;
添加到 #navigation
,但您也可以尝试使用 margin:-5px;
。我修复了您的示例的语义并向其添加了 margin:-5px
。希望这有帮助。
#navigation {
margin: 0 auto;
background-color: #FFFFFF;
//font-family: lkth;
border: double;
border-width: 5px;
border-color: #663D07;
border-radius: 10px;
height: 40px;
list-style-type:none;
}
#navigation ul {
margin:-5px;
}
#navigation li {
display: inline-block;
margin-right: 10px;
}
#navigation a {
color: #000000;
}
<div id="navigation">
<ul>
<li><a href="#"><p>Page d'accueil</p></a></li>
<li><a href="#"><p>Evénements</p></a></li>
<li><a href="#"><p>Contactez nous</p></a></li>
</ul>
</div>
这是您编辑的代码:
#navigation {
margin: 0 auto;
background-color: #FFFFFF;
border: double;
border-width: 5px;
border-color: #663D07;
border-radius: 10px;
height: 40px;
}
#navUl{
margin: 0 auto;
width: 500px;
padding-top: 10px;
}
#navLi {
display: inline-block;
height: 40px;
}
<div id="navigation">
<ul id="navUl">
<li id="navLi"><a class="navA" href="#">Page d'accueil</a></li>
<li id="navLi"><a class="navA" href="#">Evénements</a></li>
<li id="navLi"><a class="navA" href="#">Contactez nous</a></li>
</ul>
</div>
你可以这样做:
#navigation {
margin: 0 auto;
background-color: #FFFFFF;
//font-family: lkth;
border: double;
border-width: 5px;
border-color: #663D07;
border-radius: 10px;
height: 40px;
display: block;
}
#navigation li {
margin: 0 10px 0 0;
float: left;
padding: 0;
list-style: none;
line-height: 10px;
}
#navigation a {
color: #000000;
}
<div id="navigation">
<ul id="navUl">
<li><a href="#">Page d'accueil</a></li>
<li><a href="#">Evénement</a></li>
<li><a href="#">Contactez nous</a></li>
</ul>
</div>
您可以直接在导航中定位 li 和 a,不需要为此指定 classes。我添加了列表样式:none,因为您不希望您的列表带有项目符号。还将 display: inline-block 替换为 float: left,基本上做同样的事情。边距是 shorthand for margin-top: 0px, margin-right: 10px, margin-bottom: 0px and margin-left: 0px;
作为最后一点,行高:10px;这会将您的链接排在中间。
还有个小提示,id不能重复使用! id 总是 unique,如果你想重复使用它,请改用 class。
没有理由将段落放在 link 标签内。
段落标签默认有一些边距,使导航栏更高。
也是无序的列表默认有边距,这使得它更高。
所以最简单的方法是删除段落标签。
即使这还不够,你也可以删除无序列表的边距。
看看这个 JSFiddle:
#navigation {
margin: 0 auto;
background-color: #FFFFFF;
//font-family: lkth;
border: double;
border-width: 5px;
border-color: #663D07;
border-radius: 10px;
}
#navLi {
display: inline-block;
margin-right: 10px;
}
/* #navUl {
margin: 0;
} */
/* If thats not enought you can uncomment the above code */
.navA {
color: #000000;
}
<div id="navigation">
<ul id="navUl">
<li id="navLi"><a class="navA" href="#">Page d'accueil</a></li>
<li id="navLi"><a class="navA" href="#">Evénements</a></li>
<li id="navLi"><a class="navA" href="#">Contactez nous</a></li>
</ul>
</div>