【发布时间】:2018-09-27 08:54:36
【问题描述】:
我正在尝试使用“复选框技巧”进行选项卡组设计。 单击一个选项卡(标签)会选中一个单选框。然后使用〜选择器我可以在显示之间切换页面:块/无;
为了说明此设置,首先是一排标签按钮,然后是一排页面。单选框在页面容器中作为兄弟姐妹存在。
+-------------------+
| +------+ +------+ |
| | tab1 | | tab2 | |
| +------+ +------+ |
+-------------------+
| +---------------+ |
| | page 1 | |
| +---------------+ |
| +---------------+ |
| | page 2 | |
| +---------------+ |
+-------------------+
此主要功能正在运行,页面按预期换出。
现在是下一部分,我遇到了麻烦......
当您单击一个选项卡时,我需要将它的 css 更改为“选中”。由于单选框位于页面容器中,因此我无法使用它们和同级选择器来设置标签本身的样式。看来我需要另一组单选按钮,这次是在选项卡容器中。
我已经完成了第二个“复选框破解”,但现在我似乎无法同时执行这两个功能。 标签的构建如下:
<label for='tab_selector_1'>
<input id='tab_selector_1' type='radio'/>
<label for='page_selector_1' id='tab_1'>TAB NAME</label>
</label>
我预计点击会在两个标签之间冒泡并激活两个复选框,但它只作用于最深的标签。在这种情况下,只切换页面而不是选项卡样式。
有什么方法可以重组它,或者使用不同的 css 选择器来使它工作吗?如果这是一种不好的方法,html 可以全部更改,我只需要它是一个非 js 解决方案。
【问题讨论】:
-
你在 Codepen 或 Codesandbox 中有这个吗?由于您尝试做的事情的性质,这可能需要一些试验和错误来查看是否有纯 html/css 解决方案。从技术上讲,使用 :focus pesudo 类是可行的,但只有在焦点移动到 DOM 中的其他位置时才会起作用。
-
@brianespinosa 谢谢,我刚刚添加了codepen,请参阅编辑
-
对
pure css tabs的快速谷歌搜索得到this。这不是你所追求的吗? -
@fubar 你在这里有点苛刻,我显然只是进行了过于具体的搜索。但是可以,谢谢你给我看。
-
@SamMurphey,公平地说,这是一个突然的评论。很高兴链接有帮助。
标签: html css checkbox css-selectors