保留根元素,删除以下元素,直到面包屑适合。我实际上建议您在 JavaScript 中执行此操作,因为这样您就有计算面包屑像素宽度的方法,而在 PHP 中,您必须使用固定数量的字符作为断点,这总是会导致不同的长度。无论如何,对于 SEO 等来说,使用 JS 会更好,因为链接仍然存在,只是被隐藏了。
假设您有一个简单的列表元素作为面包屑:
<ul id="breadcrumb">
<li><a href="/">Home</a></li>
<li><a href="/products/">Products</a></li>
<li><a href="/products/hats/">Hats</a></li>
<li><a href="/products/hats/large/">Large</a></li>
<li><a href="/products/hats/large/red/">Red</a></li>
<li><a href="/products/hats/large/red/round/">Round</a></li>
</ul>
然后,您可以像这样修剪长度(使用 jQuery):
if($('#breadcrumb').width() > 900) {
$('#breadcrumb li:first').after('<li>...</li>');
while($('#breadcrumb').width() > 900) {
$('#breadcrumb li').eq(2).remove();
}
}
一个简单的例子,可能不起作用,但应该给你一些想法。
顺便说一句,如果你想在 PHP 中进行修剪,如果你想保持简单,就必须在形成面包屑时进行。如果您之后开始修剪,您将不得不求助于一些非常复杂的正则表达式或在您的项目中包含某种 DOM 解析器以保持锚标记的完整性。