如何在Rmarkdown中设置.tabset默认不选中任何标签页?
嘿,我来帮你搞定这个R Markdown标签页的问题!你现在用虚拟标签页的思路已经很到位了,咱们只需要再加一点点CSS就能把那个虚拟标签彻底藏起来,或者换个更清爽的方式直接控制初始状态。下面给你两种可行的解决方案:
方案一:隐藏虚拟标签页(基于你现有代码改造)
这种方法不用大改你现有的结构,只需要给虚拟标签加个自定义类,再用CSS把它藏起来,同时确保初始状态下没有内容显示:
首先在你的R Markdown文档开头添加自定义CSS块:
<style> /* 把带.hidden-tab类的标签页彻底隐藏 */ .nav-tabs .hidden-tab { display: none !important; } /* 初始状态下所有标签内容都隐藏,只有点击后才显示 */ .tab-content > .tab-pane { display: none; } </style>
然后修改你的标签部分,给虚拟标签加上.hidden-tab类:
## Stuff {.tabset .tabset-fade .tabset-pills} ### {- .hidden-tab} ### A 这里是标签A的内容 ### B {.tabset .tabset-fade .tabset-pills} #### B1 B标签下子标签B1的内容 ### C {.tabset .tabset-fade .tabset-pills} #### C1 C标签下子标签C1的内容
这样一来,那个空的虚拟标签会被彻底隐藏,初始状态下没有任何标签被选中,也不会显示任何内容,用户点击A/B/C任意标签后,对应的内容才会正常展示。
方案二:不用虚拟标签,直接用JS控制初始状态
如果你觉得虚拟标签有点多余,可以直接用JavaScript在页面加载后重置标签页的状态,这样连虚拟标签都不需要:
在文档里添加这个JavaScript块:
<script> $(document).ready(function() { // 移除默认选中的标签的active状态 $('.nav-tabs li.active').removeClass('active'); // 隐藏默认显示的标签内容 $('.tab-content .tab-pane.active').removeClass('active'); }); </script>
然后你的标签部分就可以正常写,完全不需要虚拟标签:
## Stuff {.tabset .tabset-fade .tabset-pills} ### A 这里是标签A的内容 ### B {.tabset .tabset-fade .tabset-pills} #### B1 B标签下子标签B1的内容 ### C {.tabset .tabset-fade .tabset-pills} #### C1 C标签下子标签C1的内容
这个方案更干净,原理是页面加载完成后,自动移除Bootstrap标签页默认的active类,这样就不会有选中的标签,也不会显示任何内容,用户点击标签后会自动激活对应的内容。
另外,如果你真的想把虚拟标签改成全白色(虽然隐藏更彻底),可以把方案一的CSS改成下面这样,让它和背景融为一体:
.nav-tabs .hidden-tab { background-color: white !important; border-color: white !important; color: white !important; cursor: default; }
内容的提问来源于stack exchange,提问作者biostatguy12
相关产品推荐
相关产品推荐

