如何在Firefox中只在新标签页上显示书签工具栏

如何让Firefox只在新标签页上显示书签工具栏,就像Chrome默认情况下那样? 注意:这与在Firefox中在新标签页中显示书签不同,我只想在新标签页上显示书签工具栏,而那个问题是关于以瓷砖形式显示书签。 我正在使用Firefox 57.x(也称为Quantum)。
5个回答

这是一个折中的方法,但你可以通过创建自定义的 userChrome.css 规则来实现。这个方法是将书签工具栏始终保持启用,并且只有在标签标题与新标签页的标题匹配时才会“隐藏”它。这应该适用于 Firefox 57 及以上版本(至少到当前的 beta 版本 63)。 这里是关于 userChrome 的 知识库文章。我从几个来源整合了这个解决方案,包括 这个 Reddit 帖子。总结一下(以 Windows 为例):
  1. 永久启用书签工具栏。
  2. 在文件浏览器中打开您的Firefox配置文件。在Windows上,路径为%userprofile%\AppData\Roaming\Mozilla\Firefox\Profiles\[random-id].default\
    • 注意:可能存在多个配置文件,您可以通过检查配置文件的内容来区分自己的配置文件,例如在扩展目录下。
  3. 在您的Firefox配置文件下,创建一个名为chrome的新文件夹。路径应该类似于\...\Profiles\[random-id].default\chrome\
    • 注意:这里的"chrome"指的是"用户界面",与Chrome浏览器无关。
  4. 在该新文件夹中,创建一个名为userChrome.css的纯文本文件。
  5. 打开一个新标签页,并准确地记录下标题。它可能只是Firefox。我的标题显示为Firefox Developer Edition,因为我使用的是开发渠道。
  6. 将下面的CSS规则复制到这个纯文本文件中,使用记事本等文本编辑器进行编辑。然后将引号中的标题修改为您新标签页的标题
  7. 保存文件并重新启动Firefox。
这是CSS规则:
/* show bookmarks toolbar on new tab only */
#main-window:not([title^="Firefox Developer Edition"]) #PersonalToolbar {
  visibility:collapse !important;
}

这个功能还不错,但是有一些缺点:

  • 由于工具栏已经始终“存在”,但是隐藏了起来,这意味着你只能从新标签页访问书签工具栏。从其他页面访问变得不可能。对我来说,这是一个可以接受的权衡。
  • 如果你总是使用侧边栏或者基于侧边栏的扩展程序,比如树状标签页,侧边栏将永远显示在工具栏的下方,也就是说当你打开一个新标签页时,侧边栏将临时向下移动,直到你导航到其他页面。除了看起来有点粗糙之外,这并不会真正影响可用性。

您可以从菜单中的“帮助 > 故障排除信息”打开配置文件文件夹位置,无论它在哪里。 - Daddy32
这个帖子中的所有CSS修改对我来说都没有起作用... - Daddy32

这个帖子中的答案在Firefox 72中不再适用,因为这个版本的Firefox改变了标签标题的存储方式。以下是最新的解决方案,请记住这是一个折中的方法:

  1. 按照此指南启用userChrome.css,这是一个用于使用CSS指令修改[Firefox]的文件。
  2. 按照此答案的步骤1至4操作,然后在文本编辑器中打开您创建的userChrome.css文件。
  3. 将以下代码片段(来自此来源)粘贴到文件中,然后保存:
#nav-bar:not(:focus-within) + #PersonalToolbar:not(:hover):not(:focus-within):not([customizing]) { visibility: collapse; }
4. 重新启动Firefox。每当你点击URL栏(当你创建一个新标签时会自动发生),书签工具栏应该出现。

对我来说不起作用 :( 我已经使用之前有效的解决方案了,启用了 toolkit.legacyUserProfileCustomizations.stylesheets 并放置了 userChrome.css 文件。我将您的代码片段添加到其中,重新启动了 Firefox,但是书签工具栏仍然被持续隐藏。 - Daniel Serodio
嗨 @DanielSerodio!确保以下两点是正确的: 1)您正在使用最新版本的Firefox(Firefox 72)。您可以在这里检查。 2)您已删除原始答案中的代码,并用上面答案中的代码替换。如果两个代码片段都在userChrome.css中,书签工具栏将会一直隐藏,就像您报告的那样。 - Zachary Talis
1谢谢Zachary,我没有从原始答案中删除代码。现在它正常工作了。 - Daniel Serodio
@DanielSerodio 很高兴听到这个好消息 :) - Zachary Talis
1谢谢,还适用于Firefox 76。 - darkend

使用Firefox 84(我在beta / dev版本上),有一个选项可以这样做;如果你没有看到它:

  1. 转到about:config并将browser.toolbars.bookmarks.2h2020切换为True
  2. 可能需要重新启动浏览器
  3. 之后,你可以在菜单栏中找到该选项:

enter image description here


4我在Linux上使用Firefox 84。选项如描述所示,但对于我的新标签页(空白页面),它不起作用(书签工具栏始终隐藏)。只有当在主页>新窗口和标签页>新标签页下选择“Firefox主页(默认)”时,它才起作用。现在我使用Ctrl+Shift+B通过键盘显式地显示/隐藏工具栏。 - geekQ
@geekQ 我使用Tabliss作为新标签页,似乎无法复现你的问题。 - Amith

对于那些在Firefox 85.1上遇到相同问题的人;

解决方案1:

  1. 在地址栏中输入"about:config"。点击"接受风险并继续"。
  2. 在搜索栏中输入"browser.toolbars.bookmarks.2h2020",将其设置为"true"。
  3. 进入Firefox的"自定义"页面。在页面底部点击"工具栏" > "书签工具栏" > "仅在新标签页显示"。

解决方案2:

  1. 在地址栏中输入"about:config"。点击"接受风险并继续"。
  2. 在搜索栏中输入"browser.toolbars.bookmarks.visibility",选择"newtab"。

对于 Linux 18 版本: 在 Firefox 的新标签页中打开 about:config。 启用 toolkit.legacyUserProfileCustomizations.stylesheets。 然后进入 ~/.mozilla/firefox/1sbqh1j5.default/。
cd ~/.mozilla/firefox/


cd to xxxx.default folder in it
创建一个名为chrome的文件夹。
mkdir chrome
在其中创建名为userChrome.css的文件。
touch userChrome.css


打开它在vim,nano或任何代码编辑器中

vi userChrome.sss
添加以下代码:

/*
 * Bookmarks toolbar is visible only on new tab page, just like Chrome.
 *
 * Screenshot: https://vimeo.com/235059188
 * Video: https://vimeo.com/240436456
 *
 * Contributor(s): https://www.reddit.com/user/AJtfM7zT4tJdaZsm and Andrei Cristian Petcu
 *                 https://www.reddit.com/r/FirefoxCSS/comments/7evwow/show_bookmarks_toolbar_only_on_new_tab/
 */

 #main-window #PersonalToolbar {
    visibility: collapse !important;
  }

  #main-window[title^="about:newtab"] #PersonalToolbar,
  #main-window[title^="New Tab"] #PersonalToolbar,
  #main-window[title^="Nightly"] #PersonalToolbar,
  #main-window[title^="Mozilla Firefox"] #PersonalToolbar,
  #main-window[title^="Firefox"] #PersonalToolbar,
  #main-window[title^="新标签页"] #PersonalToolbar,
  #main-window[title^="Customize Firefox"] #PersonalToolbar {
    visibility: visible !important;
  }
重新启动浏览器