Node.js Express + Jade(活动类内衬物品)
如何根据URL将活动标签设置为类?
在下面的例子中,“/”(Home)被设置为激活。
.nav-collapse.collapse ul.nav.top-2 li.active a(href='/') Home li li a(href='/about') About li li a(href='/contact') Contact li
在页面中注入某些内容以将其识别为活动页面会更好吗?
这就是我所做的,就像hexacyanide的例子,
res.render('/path', { path: req.path });
..和layout.jade中:
.nav-collapse.collapse ul.nav.top-2 li(class=path=='/'?'active':undefined) a(href='/') Home li(class=path=='/about'?'active':undefined) a(href='/about') About li(class=path=='/contact'?'active':undefined) a(href='/contact') Contact
你也可以考虑将身份标识添加到身体标记,将告诉你你是什么网页。 然后你可以指定简单的CSS规则,依赖于该ID。 这是非常受欢迎的计划,例如由WordPress提供。
对于这个ID你可以使用由render方法提供的Jadevariables。
在您的快递代码中 :
res.render('/', { id : 'home' });
在模板中 :
body##{id}
后来在ul.nav
li.home a(href='/') Home li li.about a(href='/about') About li li.contact a(href='/contact') Contact
在CSS中 :
#home ul.nav li.home { background: red; } #about ul.nav li.about { background: red; }
看看Jade的条件,logging在GitHub上 。 您可能想要将path传递到Express,如下所示:
res.render('/path', { path: req.path });
然后在Jade中,你会使用一个像这样的条件:
if path == 'home' //active styling else //not active