这是我在这里的第一篇文章。如果我做错了,请不要犹豫告诉我。
我已经构建了一个看起来很漂亮的导航栏:
我的HTML:
<div style="width: 864px; margin: 0 auto;">
<nav id="main-navigation">
<ul>
<li id="nav1"><a href="#">Lorem ipsum dolor sit ametzu</a></li>
<li id="nav2"><a href="#">Lorem ipsum dolor sit am</a></li>
<li id="nav3"><a href="#">Lorem ipsum dolor sitd</a></li>
<li id="nav4"><a href="#">Lorem ipsum dolo</a></li>
<li id="nav5"><a href="#">Lorem ipsum do</a></li>
</ul>
</nav>
</div>
这就是它现在的样子:
请注意,每个导航项的宽度应相对于其内容。我设法使用静态宽度值(幻数)构建它,如下面的css:
body{background-color: gray;}
ul{
margin: 0;
padding: 0;
}
nav#main-navigation li{
float: left;
padding: 15px 0;
text-align: center;
margin: 0;
background-color: white;
border-right: 1px dotted #222;
color: #222;
}
nav#main-navigation li:last-child { border: 0; }
nav#main-navigation li a{
font: 11px/12px sans-serif;
text-transform: uppercase;
text-decoration: none;
}
#nav1{width: 218px;}
#nav2 {width: 198px;}
#nav3 {width: 178px;}
#nav4 {width: 138px;}
#nav5 {width: 128px;}
我有两个问题:
如果有经验的人有帮助会非常好:-) 干杯
根据要求,现在这是我的州(感谢冷冻豌豆的罗迪):
http://jsfiddle.net/0xsven/rbz72/
我想让这个响应式显示在比960px更小的显示器上(这是我的最大值)。我希望导航栏伸展到包含它的div的整个长度。谢谢你的帮忙。
答案 0 :(得分:4)
第二个问题的答案是让您的<li>
元素显示inline-block
并移除浮动。这样,菜单项将响应内容大小,如inline
项。
nav#main-navigation li{
display:inline-block;
padding:15px 10px;
margin-right: -4px;
}
负右边距为a trick,以克服内联块元素之间的本地差距。
为了使可点击区域更大,解决方案将是like this。基本上你需要做的是将display: block
放在li a
元素上并告诉它占用所有可用空间。这意味着将li的填充转移到a
。
以下是此代码的working JSFiddle demo。我在:hover
添加了灰色<a>
背景色,以便您可以看到效果。
答案 1 :(得分:0)
对于第一个问题,一种方法是通过JQuery。类似的东西:
$("#main-navigation li").click(function () {
window.location = $(this).find("a").attr("href");
});
$("#main-navigation a").click(function (e) {
e.preventDefault();
});
会这样做。
答案 2 :(得分:0)
<强>#2 强>
我所做的是在UL中设置LI以显示:当屏幕宽度开始阻止菜单的外观时阻止。
例如:
@media only screen and (min-width:0px) and (max-width:960px)
{
nav#main-navigation li { display:block; width:100%; }
}
最终效果应该是菜单项的垂直列表。大多数时候我会将菜单项的外观改为按钮。
答案 3 :(得分:0)
部分答案:
要使可点击区域更大,请添加
nav #main-navigation ul li a { 显示:块; text-decoration:none; 填充:10px,20px; }
将标签的显示属性设置为“block”使链接展开以填充其容器。填充会增加可点击区域的大小,因此请根据需要调整值。
答案 4 :(得分:0)
1.我在这里并不完全理解你(<li>
不能成为<a>
元素)但我认为你想要的是<li>
的样式与标签相同。有两种方法可以做到这一点:样式化:<li>
的悬停状态与<a>
相同。将指针设置为光标可能是一个好的开始。
2.如果您希望您的设计适应veiwport的宽度,则不一定需要使用@media。 @media用于在您的设计中设置断点,其中元素可以在这些点的上方和下方回流,其余的百分比可以完成。我刚刚在这里使用了液体设计:http://jsfiddle.net/ucbEe/我移除了所有固定宽度并在li上放置了20%的宽度(5/100 = 20%宽度)。
这有足够的意义吗?