求助隐藏面包屑中的部分文本

大佬们,我想要隐藏面包屑中列表项文本(下图红色部分),请问有办法吗?

image.png

一开始想通过:has()来命中,但是 css 好像不支持使用 use 标签内的 xlink:href 属性 作为选择器。

迷茫了 :(

image.png

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    25470 引用 • 105339 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    9746 引用 • 44336 回帖 • 86 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • wilsons 1

    你可能想要的是这种效果吧

    求如何在面包屑中隐藏重复项

    1 回复
  • LLL-
    作者

    感谢大佬回复。
    不过我想要的不是隐藏重复项,而是隐藏列表项的文本,也就是变成下图的效果

    image.png

    1 回复
  • JeffreyChen 1 1 评论
    感谢提议
    LLL-
  • wilsons 1

    明白了,不过,css 实现不了,必须通过 js 实现。

    你试试下面这个代码是否你想要的效果。

    (()=>{ // 监听面包屑项出现 whenElementExist('.layout__center').then(() => { observeElementExist('.protyle-breadcrumb__item', (element) => { const xlinkHref = element.querySelector('svg use')?.getAttribute('xlink:href'); if(xlinkHref !== '#iconListItem') return; const text = element.querySelector('.protyle-breadcrumb__text'); if(!text) return; text.style.display = 'none'; }, '.layout__center'); }); // 等待元素出现(简版) function whenElementExist(selector) { return new Promise(resolve => { const check = () => { const el = typeof selector==='function'?selector():document.querySelector(selector); if (el) resolve(el); else requestAnimationFrame(check); }; check(); }); } // 监听元素出现 function observeElementExist(selector, callback, observeNode) { const handleMutations = (mutationsList, observer) => { for (let mutation of mutationsList) { if (mutation.type === 'childList') { mutation.addedNodes.forEach(node => { if (node.matches && node.matches(selector)) { callback(node); //observer.disconnect(); // 一旦找到元素,停止监听 } }); } } }; // 创建一个MutationObserver实例 const config = { attributes: false, childList: true, subtree: true }; const observer = new MutationObserver(handleMutations); // 选择需要监听的父节点 observeNode = typeof observeNode === 'string' ? document.querySelector(observeNode) : observeNode; const targetNode = observeNode || document.body; // 开始监听目标节点的变化 observer.observe(targetNode, config); } })();
    1 回复
  • LLL-
    作者

    对就是这个效果!谢谢大佬!

    就是有点小问题,编辑器页面的面包屑生效了,但是嵌入块的面包屑 和反链面板的面包屑没有生效。

    1 回复
  • Undii 3

    可以使用 css 代码片段

    @namespace xlink 'http://www.w3.org/1999/xlink'; .protyle-breadcrumb__item:has(use[xlink|href*=iconListItem]) .protyle-breadcrumb__text { display: none; }

    image.png

    1 回复
  • wilsons 2

    用这个代码试试。(之前的代码为了优化性能,缩小了监控范围导致的)

    (()=>{ // 监听面包屑项出现 observeElementExist('.protyle-breadcrumb__item', (element) => { const xlinkHref = element.querySelector('svg use')?.getAttribute('xlink:href'); if(xlinkHref !== '#iconListItem') return; const text = element.querySelector('.protyle-breadcrumb__text'); if(!text) return; text.style.display = 'none'; }, document.body); // 监听元素出现 function observeElementExist(selector, callback, observeNode) { const handleMutations = (mutationsList, observer) => { for (let mutation of mutationsList) { if (mutation.type === 'childList') { mutation.addedNodes.forEach(node => { if (node.matches && node.matches(selector)) { callback(node); //observer.disconnect(); // 一旦找到元素,停止监听 } }); } } }; // 创建一个MutationObserver实例 const config = { attributes: false, childList: true, subtree: true }; const observer = new MutationObserver(handleMutations); // 选择需要监听的父节点 observeNode = typeof observeNode === 'string' ? document.querySelector(observeNode) : observeNode; const targetNode = observeNode || document.body; // 开始监听目标节点的变化 observer.observe(targetNode, config); } })();

    如果还有问题,告诉我反链面板的面包屑怎么查看的?另外,你说的嵌入块面板屑应该指的是聚焦窗口的面包屑吧。

    1 回复
  • LLL-
    作者

    这个有效!!!

    我之前试验过这个方案,当时明明没效果的,下图注释掉的部分是当时的片段。

    可是今天突然有效果了,好奇怪
    image.png
    image.png

  • LLL-
    作者

    效果好像和昨天的一样,只有编辑器页面是生效的

    1. 反链面板是 alt+b 打开的那个侧边栏面板。
    2. 嵌入块是 {{sql}} 然后我勾选了「显示嵌入块面包屑」
    1 回复
  • wilsons 1 1 赞同

    明白了,这个可以。

    (()=>{ // 监听面包屑项出现 observeElementExist('.protyle-breadcrumb__item', (element) => { const xlinkHref = element.querySelector('svg use')?.getAttribute('xlink:href'); if(xlinkHref !== '#iconListItem') return; const text = element.querySelector('.protyle-breadcrumb__text'); if(!text) return; text.style.display = 'none'; }, document.body); // 监听元素出现 function observeElementExist(selector, callback, observeNode) { const handleMutations = (mutationsList, observer) => { for (let mutation of mutationsList) { if (mutation.type === 'childList') { mutation.addedNodes.forEach(node => { if(!node || node.nodeType !== Node.ELEMENT_NODE) return; if (node.matches && node.matches(selector)) { callback(node); } else if (node.querySelector(selector)) { const nodes = node.querySelectorAll(selector); nodes.forEach(node => { callback(node); }); } }); } } }; // 创建一个MutationObserver实例 const config = { attributes: false, childList: true, subtree: true }; const observer = new MutationObserver(handleMutations); // 选择需要监听的父节点 observeNode = typeof observeNode === 'string' ? document.querySelector(observeNode) : observeNode; const targetNode = observeNode || document.body; // 开始监听目标节点的变化 observer.observe(targetNode, config); } })();

    另外吐槽下:

    我也很奇怪那个 css,一摸一样的代码,我第一次试那个样式也没用,第二次试就好了 😄 。

    1 回复
  • LLL-
    作者

    这个代码完全符合!感谢大佬! respect❤️


    另外吐槽下:

    我也很奇怪那个 css,一摸一样的代码,我第一次试那个样式也没用,第二次试就好了 😄 。

    原来不止我一个人~ 太奇怪了

请输入回帖内容 ...

推荐标签 标签

  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 647 关注
  • 锤子科技

    锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。

    4 引用 • 31 回帖 • 1 关注
  • 微软

    微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。

    8 引用 • 44 回帖
  • OneNote
    1 引用 • 3 回帖
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    200 引用 • 120 回帖 • 1 关注
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 688 关注
  • 印象笔记
    3 引用 • 16 回帖 • 1 关注
  • Excel
    31 引用 • 28 回帖 • 2 关注
  • Swagger

    Swagger 是一款非常流行的 API 开发工具,它遵循 OpenAPI Specification(这是一种通用的、和编程语言无关的 API 描述规范)。Swagger 贯穿整个 API 生命周期,如 API 的设计、编写文档、测试和部署。

    26 引用 • 35 回帖
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    315 引用 • 547 回帖
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 499 关注
  • 旅游

    希望你我能在旅途中找到人生的下一站。

    96 引用 • 901 回帖
  • V2EX

    V2EX 是创意工作者们的社区。这里目前汇聚了超过 400,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。

    16 引用 • 236 回帖 • 261 关注
  • AWS
    11 引用 • 28 回帖 • 7 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    8 引用 • 26 回帖 • 4 关注
  • 心情

    心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。

    59 引用 • 369 回帖
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1708 回帖
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖 • 6 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 15 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    58 引用 • 25 回帖 • 3 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 679 关注
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 166 关注
  • OneDrive
    2 引用 • 1 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    9746 引用 • 44334 回帖 • 87 关注
  • WebSocket

    WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。

    48 引用 • 206 回帖 • 289 关注
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 488 关注
  • OnlyOffice
    4 引用 • 22 关注