选项卡是个很常见的小组件,总结一下想到的知识点和方法
这里就拿一般意义上的横向选项卡来说,一般来说会结合点击/鼠标移入实现效果的变化,如下拉菜单,背景变化等。
选项卡是个很常见的小组件,总结一下想到的知识点和方法
这里就拿一般意义上的横向选项卡来说,一般来说会结合点击/鼠标移入实现效果的变化,如下拉菜单,背景变化等
- 布局
float
肯定是可以实现的,absolute
+float:left
+li
,将列表横向布局实现。
如果用这种方法,免不了要想 浮动 可能引发的问题 - 父级高度塌陷。解决的方法也很容易搜到,“古老”方法可以在结构最后添加一个空div
清除浮动;“现代”方法用::after
伪元素也分分钟解决,注意要设置伪元素为块级元素block
才能出现效果,加上clear:both
接下来可能会引申到两端对齐 还可以用inline-block
+text-align: justify
实现两端对齐,不过其默认对最后一行无效,新浏览器可配合text-align-last: justify
使用。面对兼容问题一样可以使用添加空div
或者伪元素,设置display: inline-block
,并设置宽度为 100%
另外也可以 flex
,操作更加容易一些
- 切换
利用 checked 及相关伪类
利用input radio
的单选特性实现切换,最后清除radio
选项的视觉显示
1 | <!DOCTYPE html> |
利用 锚点实现 herf + :target
利用a
将href
与对应的id
绑定,调整显示层级z-index
实现切换
要注意利用a
的话,点击之后后会自动跳转到 以对应id
元素为页面顶端的位置
1 | <!DOCTYPE html> |
利用 js
直观上想,可以直接利用 js onmouseover
onclick
等实现,不过这就不属于纯 css 实现的范畴了