手动样式化 WordPress 导航菜单

WordPress 导航菜单显示在无序(项目符号)列表中。如果您使用默认的 WordPress 菜单标签,那么它将显示一个没有与之关联的 CSS 类的列表。

  1. <?php wp_nav_menu(); ?>

无序列表将具有类名menu,每个列表项都有自己的 CSS 类。

如果您只有一个菜单位置,这可能会起作用。但是,大多数主题都有多个可以显示导航菜单的位置。仅使用默认 CSS 类可能会导致与其他位置的菜单发生冲突。

这就是为什么您还需要定义 CSS 类和菜单位置的原因。很有可能您的 WordPress 主题已经通过使用如下代码添加导航菜单来做到这一点:

  1. <?php
  2. wp_nav_menu( array(
  3. 'theme_location' => 'primary',
  4. 'menu_class' => 'primary-menu',
  5. ) );
  6. ?>

此代码告诉 WordPress,这是主题显示主菜单的位置。它还在导航菜单中添加了一个 CSS 类primary-menu

现在你可以使用这个 CSS 结构来设计你的导航菜单了。

  1. // 容器类
  2. #header .primary-menu{}
  3. // 容器类第一个无序列表
  4. #header .primary-menu ul {}
  5. // 无序列表中的无序列表
  6. #header .primary-menu ul ul {}
  7. // 每个导航项
  8. #header .primary-menu li {}
  9. // 每个导航项锚点
  10. #header .primary-menu li a {}
  11. // 无序列表(如果有下拉项目)
  12. #header .primary-menu li ul {}
  13. // 每个下拉导航项
  14. #header .primary-menu li li {}
  15. // 每个下拉导航项锚点
  16. #header .primary-menu li li a {}

您将需要替换#header为导航菜单使用的容器 CSS 类。

这种结构将帮助您彻底改变导航菜单的外观。

但是,还有其他WordPress 生成的 CSS 类会自动添加到每个菜单和菜单项中。这些类允许您进一步自定义导航菜单。

  1. // 当前页面的类
  2. .current_page_item{}
  3. // 当前类别的类
  4. .current-cat{}
  5. // 任何其他当前菜单项的类
  6. .current-menu-item{}
  7. // 类别的类
  8. .menu-item-type-taxonomy{}
  9. // 文章类型的类
  10. .menu-item-type-post_type{}
  11. // 任何自定义链接的类
  12. .menu-item-type-custom{}
  13. // 首页链接类
  14. .menu-item-home{}

WordPress 还允许您将自己的自定义 CSS 类添加到各个菜单项。您可以使用此功能设置菜单项的样式,例如在菜单中添加图像图标或仅更改颜色以突出显示菜单项。

前往WordPress 管理员中的外观 » 菜单页面,然后单击【显示选项】按钮。

为单个菜单项启用 CSS 类选项

选中该框后,您将看到在编辑每个单独的菜单项时添加了一个附加字段。

将自定义 CSS 类添加到 WordPress 中的菜单项

现在您可以在样式表中使用这个 CSS 类来添加您的自定义 CSS。它只会影响您添加的 CSS 类的菜单项。

WordPress 中的导航菜单样式示例

不同的 WordPress 主题可能会使用不同的样式选项、CSS 类,甚至 JavaScript 来创建导航菜单。这为您提供了许多选项来更改这些样式并自定义导航菜单以满足您自己的要求。

在确定要更改哪些 CSS 类时,Web 浏览器中的检查工具将是您最好的朋友。如果您以前没有使用过,请查看《如何使用浏览器的开发者工具调试网站

您只需将光标指向要修改的元素,右键单击,然后从浏览器的菜单中选择“检查”。

样式菜单检查

请注意,对于这个主题,“primary-menu-list”是导航菜单的 CSS ID,“menu-wrapper”是它的 CSS 类。

话虽如此,让我们看一下 WordPress 中样式导航菜单的一些真实示例。

1. 更改 WordPress 导航菜单中的字体颜色

这是您可以添加到主题中以更改导航菜单字体颜色的示例自定义 CSS。

  1. #primary-menu-list li.menu-item a {
  2. color:#ff0000;
  3. }

在此示例中,#primary-menu-list是分配给显示我们的导航菜单的无序列表的 ID。您将需要使用检查工具来找出您的主题使用的 ID。

更改 WordPress 导航菜单的字体颜色

2.更改导航菜单栏的背景颜色

首先,您需要为围绕导航菜单的容器找出主题使用的 CSS ID 或类。

查找导航菜单容器的 CSS 类

之后,您可以使用以下自定义 CSS 更改导航菜单栏的背景颜色。

  1. .menu-wrapper {
  2. background-color:#bdd1cd;
  3. }

这是它在我们的演示网站上的外观。

更改导航菜单栏的背景颜色

3.更改单个菜单项的背景颜色

您可能已经注意到,许多网站的导航菜单中最重要的链接使用不同的背景颜色。此链接可以是登录、注册、联系或购买按钮。通过赋予它不同的颜色,链接更加明显。

为了实现这一点,我们将添加一个自定义 CSS 类到我们想要用不同背景颜色突出显示的菜单项。

前往外观»菜单,然后单击屏幕右上角的“显示选项”按钮。这将弹出一个下拉菜单,您需要在其中选中“CSS 类”选项旁边的框。

为单个菜单项启用 CSS 类选项

之后,您需要向下滚动到要修改的菜单项,然后单击以展开它。您会注意到添加自定义 CSS 类的新选项。

将自定义 CSS 类添加到菜单项

保存菜单后,您可以使用此 CSS 类以不同的方式设置特定菜单项的样式。

  1. .contact-us {
  2. background-color: #ff0099;
  3. border-radius:5px;
  4. }

这是它在我们的测试站点上的外观。

更改单个菜单项的背景颜色

4. 为 WordPress 导航菜单添加悬停效果

你想让你的菜单项在鼠标悬停时改变颜色吗?这个特殊的 CSS 技巧使您的导航菜单看起来更具交互性。

只需将以下自定义 CSS 添加到您的主题中。

  1. #primary-menu-list li.menu-item a:hover {
  2. background-color:#a6e4a5;
  3. color:#666;
  4. border-radius:5px;
  5. }

在此示例中,#primary-menu-list是主题用于无序导航菜单列表的 CSS ID。

这是我们的测试站点上的外观。

WordPress导航菜单中的鼠标悬停效果

5. 在 WordPress 中创建粘性浮动导航菜单

通常导航菜单出现在顶部并随着用户向下滚动而消失。当用户向下滚动时,置顶浮动导航菜单保持在顶部。

您可以将以下 CSS 代码添加到您的主题中,以使您的导航菜单具有置顶功能。

  1. #primary-menu-list {
  2. background:#2194af;
  3. height:60px;
  4. z-index:170;
  5. margin:0 auto;
  6. border-bottom:1px solid #dadada;
  7. width:100%;
  8. position:fixed;
  9. top:0;
  10. left:0;
  11. right:0;
  12. text-align: right;
  13. padding-left:10px
  14. }

只需替换#primary-menu-list为导航菜单的 CSS ID。

这是它在我们的演示中的外观。

粘性导航菜单

6. 在 WordPress 中创建透明的导航菜单

许多网站使用带有号召性用语按钮的大型或全屏背景图像。使用透明菜单使您的导航与图像融为一体。这使用户更有可能关注您的号召性用语。

只需将以下示例 CSS 添加到您的主题中,即可使您的导航菜单透明。

  1. #site-navigation {
  2. background-color:transparent;
  3. }

这是它在我们的演示网站上的外观。

透明导航菜单

根据您的主题,您可能需要调整标题图像的位置,使其覆盖透明菜单后面的区域。

7. 设置第一个和最后一个菜单项的样式

您可以通过添加 .first 和 .last 类来为 WordPress 导航菜单的第一项和最后一项添加自定义样式。即使重新排列菜单中的项目,这也将确保设置正确的项目样式。

您需要将以下代码片段添加到主题的 functions.php 文件中:

  1. function wpb_first_and_last_menu_class($items) {
  2. $items[1]->classes[] = 'first';
  3. $items[count($items)]->classes[] = 'last';
  4. return $items;
  5. }
  6. add_filter('wp_nav_menu_objects', 'wpb_first_and_last_menu_class');

这将分别为您的第一个和最后一个导航菜单项创建 .first 和 .last CSS 类。您可以使用这些类来设置菜单项的样式。

例如,您可以将此 CSS 格式添加到主题的 style.css 样式表中,以加粗第一个和最后一个菜单项。

  1. .first a {font-weight: bold;}
  2. .last a {font-weight: bold;}

这是它在我们的演示网站上的外观。

以不同的方式设置第一个和最后一个菜单项的样式

我们希望本文能帮助您了解如何设置 WordPress 导航菜单的样式。

注:本文内容来自 WPBeginner,由 WordPress大学 翻译整理。

消息盒子
# 您需要首次评论以获取消息 #
# 您需要首次评论以获取消息 #

只显示最新10条未读和已读信息