内容简介:前段时间看到群里有不少同学在讨论,Slider效果在Web中是非常常见的一种效果,像通过
前段时间看到群里有不少同学在讨论, 目前阶段哪些交互行为可以直接使用CSS来实现,而不再依赖JavaScript 。后来想想,这应该也是一个值得我们探讨的话题,后来一想,要不这一期我们就来聊聊,哪些交互行为,可以不再依赖JavaScript,直接使用CSS来实现。
CSS Slider
Slider效果在Web中是非常常见的一种效果,像 Swiper 这样的库是一个非常优秀的库,用于实现Slider效果最好不过了。如果我们抛开JavaScript使用纯CSS也可以实现一些简单的Slider效果,不同的是要实现自动播放会有一定的难度。
通过 <a>
链接的锚点来实现。除此之外,还可以配合 input[type="radio"]
、CSS的 :target
选择器 。
如果我们想要实现一个自动播放的效果,需要配合CSS的 animation
相关的特性一起来实现,比如下面这个示例:
如果不是自播放的Slider,CSS实现方案有很多种,对于自动播放的,那么就需要具备 animation
和Web动画相关的知识 。随着滚 动特性 和 滚动捕捉特性 越来越完善,对于CSS实现Slider的效果会越来越完美。
有关于CSS实现的Slider效果更多案例, 可以点击这里查阅 。
CSS Accordion
使用CSS实现手风琴的效果和实现Slider的效果类似,可以通过 [input type="radio"]
、 :target
、 :hover
等方法来实现。比如下面这个效果:
如果你不想太纠结或者说徒手撸一个手风琴效果的话,也可以尝试着使用在线的生成工具,比如 CSS Accordion Slider 就蛮不错的:
有关于CSS手风琴更多的效果可以点击 这里 或 这里 查阅。
实现Accordion的效果除了CSS之外,还有一个更优秀的方案,那就是采用HTML5的 <details>
和 <summary>
标签,比如下面这个案例:
有关于 <details>
和 <summary>
更详细的介绍可以阅读《 借助HTML5 details,summary无JS实现各种交互效果 》一文。另外,这两个标签结合在一起还可以 实现一些其他的交互效果 。
CSS Modal
模态弹出框也可以使用 :target
或借助 radio
或 checkbox
的 checked
来完成:
同时还可以借助 animation.css
中提供的 animation
效果 ,让Modal的出现和隐藏带有一些动效。比如像 Light Modal提供的效果 。
有关于CSS实现Modal的更多效果 可以点击这里查阅 。
CSS Tabs
原理是一样的, :target
、 checked
配合 ~
一起。有关于 CSS实现Tabs 更多的 案例 可以 点击这里 。
CSS Tooltips
提示框通常是借助CSS状态选择器中的 :hover
或 :focus
来实现,也是非常常见的一个效果:
如果要实现点击显示或隐藏提示框,那还得借助 checkbox
或 radio
的 checked
来完成。除此之外还可以使用 :focus-within
来实现提示框的效果 。
有关于Tooltip更多的效果 可以点击这里查阅 。
CSS Dropdown Menu
下拉菜单,采用 :hover
实现下拉菜单已是很经典的技术了,比如下面这个效果:
现如今可以使用 :focus-within
实现 Off-screen 导航菜单的效果:
前面提到使用 <details>
和 <summary>
来实现手风琴的效果,其实使用这两个标签也可以很好的实现下拉菜单的效果。
有关于 下拉菜单更案例可以点击这里查阅 。
CSS Range Slider
在上一期中的末尾提到了HTML5的 <meter>
、 <progress>
实现进度条的效果:
对于滑块的效果,可以直接使用 <input type="range" />
来实现:
@Ana Tudor在她的《 A Sliding Nightmare: Understanding the Range Input 》一文中详细介绍了如何使用 <input type="range">
,有兴趣的同学可以看看。
我们也可以使用 CSS的 mask
相关的特性 ,让Progress的效果更美:
有关于滑块更多的效果 可以点击这里查阅 。
CSS Star Rating
评分系统,也可以使用CSS来完成,不过需要配合 input
的 checked
一直处理:
有关于评分系统更多的案例 可以点击这里查阅 。
CSS Scrollbar
在Webkit内核下,可以借助Scrollbar相关的伪元素选择器实现自定义滚动条效果:
小结
文章中提到的这些效果,在以往较多情形之下,或者说一定得依赖JavaScript一起才能完成。随着CSS特性越来越强大,以前很多常见的Web效果(交互效果)就可以使用纯CSS来完成。上面是我能想到的一些常见效果,效果中常用到的是 :target
、 :focus-within
, input
的 checked
和 ~
(或 +
)选择器来完成。虽然CSS能实现这些效果,但对于HTML的结构有较强的要求,如果结果没有写好,要实现这些相应的交互效果就较为困难。另外,HTML5的一些新标签也能很好的帮助我们实现一些效果,比如使用 <details>
实现手风琴,下拉菜单等效果,使用 type="range"
、 progress
、 meter
可以实现一些进度条和滑块的效果。
如果您在这方面有相应的经验,欢迎在下面的评论中与我们一起分享。
以上所述就是小编给大家介绍的《Web技巧(08)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 渗透技巧之Powershell实战技巧
- 渗透技巧——快捷方式文件的参数隐藏技巧
- Python实用技巧,你不知道的7个好玩的Python技巧
- Python 技巧总结
- 监控OpenStack的技巧
- JNI技巧
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。