点击哪个临近的两个元素就会有圆角 这种效果要用js控制吗
楼上已经给出了使用 JS
的方案,这个问题用 CSS
实际上也可以解决,但是实现比较繁琐,而且如果列表是使用表格实现的话,这套思路是行不通的,所以不保证实际效果,大致思路如下:
relative
;margin-top
,使其恰好遮盖上一项的底部圆角和阴影;::before
伪元素,设其宽高和位置,遮盖本项的顶部圆角和阴影;:active
给每一项添加点击响应,被鼠标“按下” 的时候该项的 z-index
设为负值,这样就会显示出前一项的圆角和阴影,使用兄弟选择器 +
选择后面一项,并隐藏其 ::before
伪元素,以显示其圆角和阴影。当然,实际应用中,通常不希望鼠标松开就恢复原状,所以还要配合一个隐藏的 input[type=radio]
来实现选中效果,所以实现相当繁琐,不如使用 JS
来得直接和快速。
8 回答4.5k 阅读✓ 已解决
6 回答3.1k 阅读✓ 已解决
5 回答2.7k 阅读✓ 已解决
5 回答6.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答2.4k 阅读
4 回答2.7k 阅读✓ 已解决
纯 CSS 方案
上 左 下的 阴影可以 再套一个DIV,overflow:hidden 去掉
还有一点点的瑕疵