纯 CSS 实现选项切换效果

之前看张鑫旭大神的文章

不用 JS 实现选项卡切换效果。文中有两种实现方式:锚点实现和 radio 单选框实现。

锚点实现的方式会导致页面跳转且会更改页面路径,基本没有什么能用到的地方。用 redio 的方式也的文章发布在 2012 年以前,比较久远。所以原示例使用 float 来排布 tab,只能固定高度,不能实现高度自适应。

而现在我们可以使用 flex 加 order 属性,避免 float 高度塌陷的问题,实现高度自适应,实现一个比较完美的选项卡切换。Yank Note (opens new window)自定义 Group 容器 (opens new window)便采用这种纯 CSS 的方式实现。

Img

为什么这里我要使用 CSS 而不是 JS 来实现呢?一是因为 Markdown-it 是顺序解析并渲染的,如果要做成树状的结构,那么需要回溯,要做很多额外的动作;二是引入 JS 后,这个文档如果导出成不带 JS 的 HTML 便不能工作了;最后呢则还是有点炫技的意味在里面。我个人来说,能用 CSS 实现的我就不愿意动用 JS (opens new window)

本文由「Yank Note - 一款面向程序员的 Markdown 笔记应用 (opens new window)」撰写