0

我正在尝试为我的菜单设置主题以更改默认的 UL 类。到目前为止,我正在使用以下功能:

function theme_menu_tree($variables){
  return '<ul class="my-class">' . $variables['tree'] . '</ul>';
}

这很好用,但我需要将不同的类应用于父项内的 UL。现在我得到

<ul class="my-class">
  <li class="dropdown">Item
    <ul class="my-class">
      <li>Link1</li>
      <li>Link2</li>
    </ul>
  </li>
</ul>

如何使用 theme_menu_tree 函数定位第二个 UL 以赋予它不同的类?

4

3 回答 3

0

也许您正在寻找菜单属性模块。它允许您定义 CSS 类和 ID。

于 2013-07-02T23:39:34.430 回答
0

为什么需要覆盖菜单类?为什么不查看菜单所在的正文、部分或块的 CSS id 或类,并使用您所在的位置并使用它来覆盖它?

例如,我使用它来覆盖块中叶菜单项的默认外观:

#block-menu-menu-top-navigation ul li.leaf
{
  list-style-type: none;
  list-style-image: none;
}
于 2013-07-02T20:28:35.690 回答
0

在 Drupal 中,没有默认的 UL 类这样的东西。有主题函数(可通过以theme_开头的函数名称识别)和模板(可通过以.tpl.php结尾的文件名识别)。两者都没有对用于呈现数据的 HTML 元素做出任何假设。特别是,Drupal 没有假设应该将哪些类应用于模板或主题函数生成的元素。

于 2013-07-02T20:29:09.803 回答