📜  如何创建面包屑导航?(1)

📅  最后修改于: 2023-12-03 15:38:10.432000             🧑  作者: Mango

如何创建面包屑导航?

面包屑导航是网站导航的一种形式,它为用户提供了在网站中的位置及浏览路径。以下是创建面包屑导航的几种方法。

1. 利用 HTML 和 CSS 实现

我们可以利用 HTML + CSS 来手动创建面包屑导航。首先,在页面的合适位置创建一个容器:

<!-- 面包屑导航容器 -->
<div class="breadcrumb"></div>

然后,利用 CSS 来设置容器样式,并添加链接和分隔符:

.breadcrumb {
  font-size: 14px;
  margin-top: 10px;
  padding: 10px;
  background-color: #f5f5f5;
  border: 1px solid #ccc;
}

.breadcrumb a {
  text-decoration: none;
  color: #337ab7;
}

.breadcrumb span {
  margin: 0 5px;
  color: #ccc;
}

最后,在 JavaScript 中动态生成面包屑导航:

// 获取面包屑导航容器
const breadcrumb = document.querySelector('.breadcrumb');

// 动态生成面包屑导航
const crumbs = [
  {
    name: '首页',
    url: '/'
  },
  {
    name: '产品分类',
    url: '/category'
  },
  {
    name: '手机',
    url: '/category/phone'
  },
  {
    name: 'iPhone 11',
    url: '/product/12345'
  }
];

let html = '';
for (let i = 0; i < crumbs.length; i++) {
  const crumb = crumbs[i];
  if (i === crumbs.length - 1) {
    // 最后一项,不需要链接
    html += '<span>' + crumb.name + '</span>';
  } else {
    html += '<a href="' + crumb.url + '">' + crumb.name + '</a><span>></span>';
  }
}
breadcrumb.innerHTML = html;
2. 使用第三方库

除了手动创建外,我们也可以使用第三方库来创建面包屑导航,例如 breadcrumbs.js

首先,引入库文件:

<!-- 引入库文件 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/breadcrumbs-js/dist/breadcrumbs.css">
<script src="https://cdn.jsdelivr.net/npm/breadcrumbs-js/dist/breadcrumbs.min.js"></script>

然后,创建面包屑导航:

<!-- 面包屑导航容器 -->
<div class="breadcrumb"></div>
// 创建面包屑导航
const crumbs = [
  {
    label: '首页',
    url: '/'
  },
  {
    label: '产品分类',
    url: '/category'
  },
  {
    label: '手机',
    url: '/category/phone'
  },
  {
    label: 'iPhone 11',
    url: '/product/12345'
  }
];

// 初始化面包屑导航
const breadcrumb = new Breadcrumbs('.breadcrumb', crumbs);
3. 使用 React 组件

如果网站使用了 React 技术栈,我们可以使用 React 组件来创建面包屑导航。

首先,创建面包屑导航组件:

import React from 'react';

function Breadcrumb(props) {
  return (
    <nav aria-label="breadcrumb">
      <ol className="breadcrumb">
        {
          props.items.map((item, index) => {
            let text = item.text;
            if (item.url) {
              text = <a href={item.url}>{text}</a>;
            }
            return (
              <li className={'breadcrumb-item' + (index === props.items.length - 1 ? ' active' : '')} key={index}>{text}</li>
            );
          })
        }
      </ol>
    </nav>
  );
}

export default Breadcrumb;

然后,在页面中使用组件:

import React from 'react';
import ReactDOM from 'react-dom';
import Breadcrumb from './Breadcrumb';

// 定义面包屑导航数据
const items = [
  {text: '首页', url: '/'},
  {text: '产品分类', url: '/category'},
  {text: '手机', url: '/category/phone'},
  {text: 'iPhone 11'}
];

// 渲染面包屑导航组件
ReactDOM.render(
  <Breadcrumb items={items} />,
  document.getElementById('breadcrumb')
);

以上是三种创建面包屑导航的方法,您可以根据网站的具体情况选择适合的方式来实现。