如何在SharePoint 2007 topnav中为单个单元格定义样式?

时间:2010-06-17 17:34:33

标签: css sharepoint

我有一个客户端要求为MOSS topnav中的每个单独导航单元格分别设置颜色。我知道如何设置整个topnav栏的样式,但不能想办法分别给它们着色。

我查看了SharePoint生成的源代码,并注意到这些选项卡是ID'd'zz1_TopNavigationMenun1','zz1_TopNavigationMenun2'等等,但似乎无法覆盖CSS。

是否有人知道是否可以明确设置每个标签,如果是,那么包含哪些CSS?

非常感谢。

1 个答案:

答案 0 :(得分:1)

是的,您可以设置MOSS菜单的各个选项卡的样式,但它非常hacky(因为代码不可访问,样式通常是内联的,您需要使用!重要的CSS黑客)。

包含所有菜单的表格具有以下ID:zz1_TopNavigationMenu

然后,每个topnav菜单项都具有以下ID:zz1_TopNavigationMenun0,zz1_TopNavigationMenun1等。 从左到右(对于最后的数字,所以n0是最左边的菜单项,n1是第二个,等等。)

每个菜单项都是td。您可以通过执行类似

的操作来设置css中菜单项的边框
#zz1_TopNavigationMenun1 {
   border-left:1px solid #FFFFFF !important;
   border-right:1px solid #FFFFFF !important;

}

你需要使用!important css hacks来完成这项工作。否则,您的样式将被MOSS菜单中显示的内嵌样式覆盖(当用户将鼠标悬停在其上时)。

在这些TD中,还有另一个表,您可以在其中设置更多样式(例如链接的外观等)。

选择菜单项时,会向其添加ms-topnavselected类。您可以使用它来为菜单项应用不同的颜色(再一次,在您的CSS中使用!important)

如果未选择菜单项,您应该获得如下所示的HTML:

<table cellspacing="0" cellpadding="0" border="0" width="100%" class="ms-topnav zz1_TopNavigationMenu_4 ms-topnavselected zz1_TopNavigationMenu_10">
  <tbody>
    <tr>
  <td style="white-space: nowrap;">
        <a style="border-style: none; font-size: 1em;" href="...." class="zz1_TopNavigationMenu_1 ms-topnav zz1_TopNavigationMenu_3 ms-topnavselected zz1_TopNavigationMenu_9">Text</a>
      </td>
</tr>
  </tbody>
 </table>

选择它后,HTML将如下所示:

<table cellspacing="0" cellpadding="0" border="0" width="100%" class="ms-topnav zz1_TopNavigationMenu_4 ms-topnavselected zz1_TopNavigationMenu_10">
  <tbody>
    <tr>
  <td style="white-space: nowrap;">
        <a style="border-style: none; font-size: 1em;" href="...." class="zz1_TopNavigationMenu_1 ms-topnav zz1_TopNavigationMenu_3 ms-topnavselected zz1_TopNavigationMenu_9">Text</a>
      </td>
</tr>
  </tbody>
 </table>

2之间的最大区别是.ms-topnavselected所以如果你想要选择菜单的样式,你应该使用这个:

.ms-topnavselected {
     color:#FFFFFF !important;
}
例如

(再一次,你需要!important)。

所以基本上,如果你想根据它们的位置设置菜单样式,可以使用#zz1_TopNavigationMenun从表格中设置样式,如果要设置所选菜单的样式,请使用.ms-topnavselected。对于其中的任何其他内容,您必须使用父子关系来访问它们(因为它们的ID不可靠)。例如:

#zz1_TopNavigationMenun1 > tbody > tr > td

设置特定菜单项的样式。

希望这有帮助!