我希望Drupal中的主要链接在代码中看起来像这样:
<a class="active" title="Go to the Foo Homepage" href="/"><span>Home</span></a>
而不是:
<a class="active" title="Go to the Foo Homepage" href="/">Home</a>
因此,我可以将span
与a
分开设置样式。
(我知道这听起来有些奇怪,但它与IE缺乏边界半径支持以及无法设置2个背景图像有关。)
所以你知道吗?我如何让Drupal在我的所有主要链接中插入这些标记?
答案 0 :(得分:2)
我猜,在你page.tpl.php
的某个地方,你有这样的东西来显示主菜单:
print theme('links', $primary_links, array('class' => 'links primary-links'));
一个解决方案(可能不是最干净的 - 但应该有效)将迭代$primary_links
的元素,为每个元素:
title
和<span>
</span>
如果您的菜单只有一个级别,我认为这样做:
foreach ($primary_links as & $link) {
$link['html'] = true;
$link['title'] = '<span>' . $link['title'] . '</span>';
}
然后,您可以像现在一样调用theme
。
这样,您应该在链接文本周围添加<span>
标记,而不会将其注入title
标记的<a>
属性。
我的菜单中有更多关卡,你必须进一步向下迭代;如果您不知道菜单的深度,可以使用两个叠加循环,也可以使用某种递归。
(我会让你玩得开心;我说的应该足以让你开始;-))
作为旁注,这也许可以在template.php
的某个地方完成......可能是一个更好的地方;但我会让你决定你喜欢哪种解决方案......
玩得开心!
答案 1 :(得分:0)
这应该有助于http://drupal.org/node/221382
向下滚动至此评论以获取最终解决方案http://drupal.org/node/221382#comment-755469。 html输出存在问题,并在那里得到解决。
答案 2 :(得分:0)
为了记录,我最后使用了menu_html module并在相关对话框中输入了<span>Menu Item 1</span>
的菜单项。
事实上,我最后在其中一个中使用了<span><span>Menu Item Expanded</span></span>
因为它已经展开并且已经有了背景图像集。它现在有3个!
至少我的标签上的弯角现在正在IE中工作。 IE再次吸收5/6小时,因为它不能正确支持CSS!