带有垂直分隔线的水平导航上的背景翻转
我有一个以某种方式构建的导航:
<ul class='mainnav'>
<li><a href="#"> Link 1 </a></li>
<li><a href="#"> Link 2 </a></li>
<li><a href="#"> Link 3 </a></li>
</ul>
并且每个项目的右侧都有一个小边框。边框并没有从上到下一直延伸,因此我将其放在 标记上,而不是
现在,在 ' selected
' 导航状态 我希望
的背景更改为不同的颜色,但我遇到了 2 个问题:- 我的
< li>
和我的宽度不同。
- 在 Chrome 中,它改变了
中的背景,尽管我很好 意图。
这是我的CSS。如果有人知道如何做到这一点,我将不胜感激,已经奋斗了几天......
#navigation{background-color:#294964; width:100%; height:40px; display:block;}
#navigation ul.mainnav{height:35px; display:block; margin:0; }
#navigation ul.mainnav li{display:inline; cursor: pointer; height: 40px; line-height:40px;margin:0px; padding:12px 0;}
#navigation ul.mainnav li a{ border-right: 1px solid #49647B; color: #FFFFFF; padding: 4px 15px; text-decoration: none; width:100%; font-size: 14px; }
#navigation ul.mainnav li a:hover{ color: #a4a47e;}
#navigation ul.mainnav li.selected {background-color:#0b1b32;}
I have a navigation that is built in a way:
<ul class='mainnav'>
<li><a href="#"> Link 1 </a></li>
<li><a href="#"> Link 2 </a></li>
<li><a href="#"> Link 3 </a></li>
</ul>
and I have a small border on the right of each of the items. The border is not going all the way from top to bottom, so I have put it on the <a>
tag instead of <li>
Now, in the 'selected
' state of my navigation I want the <li>
's background to change to a different color, but I run into 2 problems:
- my
<li>
and my<a>
are not the same width. - in Chrome, it changes the background in
<a>
despite my good
intentions.
Here's my css. I would appreciate if someone knows how to do this, has been fighting for days...
#navigation{background-color:#294964; width:100%; height:40px; display:block;}
#navigation ul.mainnav{height:35px; display:block; margin:0; }
#navigation ul.mainnav li{display:inline; cursor: pointer; height: 40px; line-height:40px;margin:0px; padding:12px 0;}
#navigation ul.mainnav li a{ border-right: 1px solid #49647B; color: #FFFFFF; padding: 4px 15px; text-decoration: none; width:100%; font-size: 14px; }
#navigation ul.mainnav li a:hover{ color: #a4a47e;}
#navigation ul.mainnav li.selected {background-color:#0b1b32;}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
“内联”元素中的
a
给出的是display:block
,因此可以应用宽度、边距、填充等。a
in an "inline" element, give isdisplay:block
so width, margin, padding etc can be applied.使用 block 或 inline-block 来显示元素。
Use block or inline-block for the display of the elements.
最好的办法是实际上避免为
元素设置任何尺寸,而是应用
标记中的所有尺寸。这样,导航元素的整个部分将是可点击的,并且将在悬停时发生变化。
HTML:
CSS:
预览:http://jsfiddle.net/Wexcode/NR9az/
Your best bet is to actually refrain from setting any dimensions for your
<li>
elements, and instead apply all of those within your<a>
tag. That way, the entire part of the navigation element will be clickable, and will change on hover.HTML:
CSS:
Preview: http://jsfiddle.net/Wexcode/NR9az/