bla*_*zoo 7 ruby-on-rails menu highlight
谁能告诉我如何使用css突出显示导航栏上的当前链接(带颜色)?我不想使用控制器选项.以下是shared/menu.html.erb中的代码:
<div id = "navigation">
<ul>
<li id="menu"><%=link_to "Menu", menus_path, :class => "menunav"%></li>
<li id="drink"><%=link_to " Drinks", drinks_path, :class => "drinknav"%> </li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
这样的事情将为您工作。当然,您必须根据自己的目的进行调整,可能会使匹配变得更加复杂(目前,这仅与示例中的路径匹配)。
$("#navigation a[href="+window.location.pathname+"]")
.closest('li')
.css('background-color', '#ff0');
Run Code Online (Sandbox Code Playgroud)
更好的是,您可以在某处定义“当前”类,然后简单地将其添加:
/* in some stylesheet */
#navigation li.current { background-color: #ff0; }
/* then the js */
$("#navigation a[href="+window.location.pathname+"]")
.closest('li')
.addClass('current');
Run Code Online (Sandbox Code Playgroud)
有几种方法可以实现这一点,但如果您想要一种简单的方法,我建议您在正文中添加一个类。
<body class="<%= params[:controller] %>_controller">
...
</body>
Run Code Online (Sandbox Code Playgroud)
然后在你的 css 中你可以执行以下操作。
body.menus_controller #navigation a.menunav,
body.drinks_controller #navigation a.drinknav {
background-color : yellow
color : blue
}
Run Code Online (Sandbox Code Playgroud)
如果您想要拆分多个页面,这可能会变得复杂,但对于这个基本示例来说应该没问题。
| 归档时间: |
|
| 查看次数: |
6227 次 |
| 最近记录: |