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