【发布时间】:2012-01-16 05:35:49
【问题描述】:
我需要在网页上实现一个导航菜单,可能有几个级别的选项卡。每当 CSS 在我的控制之下时,我都会使用 CSS 方式,但现在我在使用现有的 CSS 库(在本例中为 Twitter 的 Bootstrap)时遇到了问题。
首先,这是我使用的 CSS 方式。示例 HTML:
<html>
<head>
<title>Example page</title>
</head>
<body class="articles">
<div class="navigation">
<ul>
<li class="frontpage"><a href="#">Frontpage</a></li>
<li class="articles"><a href="#">Articles</a></li>
</ul>
</div>
<p>Blah blah.</p>
</body>
</html>
... 和 CSS:
body.frontpage div.navigation li.frontpage,
body.articles div.navigation li.articles {
background-color:red;
color:white;
}
足够简单。只有在适当的时候才需要更改 body 的类。
现在,Bootstrap 似乎使用基于类的样式来选择导航项(顶部栏、选项卡、药丸)。示例:
...
<div class="navigation">
<ul class="tabs">
<li class="active"><a href="#">Frontpage</a></li>
<li><a href="#">Articles</a></li>
</ul>
</div>
...
我最初想做类似的事情
navigation = ('frontpage',)
# or
navigation = ('articles', 'categories', 'foo',)
在控制器中,然后将此元组传递给模板,但不知何故,它有这种“做错事”的氛围。
所以问题是:由于我实际上必须在模板中打印类选择,我如何跟踪当前位置(如导航树中此页面的位置),假设页面可能有多级标签或其他导航项?有没有首选的方法来做到这一点?
我正在使用带有 Mako 模板的路线风格的 Pyramid,但通用答案也很受欢迎。
【问题讨论】:
标签: python navigation pyramid mako