You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jekyll的HTML文件中实现YAML配置的导航栏下拉菜单

Jekyll导航栏下拉菜单实现方案

1. 校验navigation.yml配置格式

YAML对缩进要求严格,必须使用2个空格作为层级缩进,否则Jekyll无法正确读取sublinks配置,正确格式参考:

- title: "首页"
  url: "/"
- title: "关于"
  url: "/about/"
- title: "Contact Us"
  sublinks:
    - title: "Text goes here"
      url: "#"
    - title: "Text goes here"
      url: "#"
    - title: "Text goes here"
      url: "#"

2. 修改导航栏HTML模板

将原有的循环逻辑替换为支持下拉判断的版本,代码如下:

<ul class="visible-links">
  {%- for link in site.data.navigation.main -%}
    <li class="masthead__menu-item {% if link.sublinks %}dropdown{% endif %}">
      {% if link.sublinks %}
        <!-- 有下拉的导航项 -->
        <a href="javascript:void(0);" {% if link.description %} title="{{ link.description }} "{% endif %}>{{ link.title }}</a>
        <ul class="dropdown-menu">
          {% for sublink in link.sublinks %}
            <li>
              <a href="{{ sublink.url | relative_url }}" {% if sublink.description %} title="{{ sublink.description }}"{% endif %}>{{ sublink.title }}</a>
            </li>
          {% endfor %}
        </ul>
      {% else %}
        <!-- 普通导航项 -->
        <a href="{{ link.url | relative_url }}" {% if link.description %} title="{{ link.description }} "{% endif %}>{{ link.title }}</a>
      {% endif %}
    </li>
  {%- endfor -%} 
</ul>

逻辑说明:遍历导航配置时,会自动判断当前项是否存在sublinks配置,存在则渲染下拉子菜单结构,不存在则保持原有普通链接渲染逻辑。

3. 添加下拉交互样式

你需要在站点CSS文件中添加以下基础样式,实现hover触发下拉的效果:

/* 下拉容器基础样式 */
.dropdown {
  position: relative;
}
/* 默认隐藏子菜单 */
.dropdown .dropdown-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  list-style: none;
  padding: 0;
  margin: 0;
  min-width: 120px;
  background: #fff;
  border: 1px solid #eee;
}
/* hover时显示子菜单 */
.dropdown:hover .dropdown-menu {
  display: block;
}
/* 子菜单项样式 */
.dropdown .dropdown-menu li {
  padding: 8px 12px;
}
.dropdown .dropdown-menu li a {
  text-decoration: none;
  color: inherit;
}

你可以根据自己站点的设计风格调整样式细节。

内容的提问来源于stack exchange,提问作者alphanumEric

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 16:15:04