Web技巧(08)

栏目: CSS · 发布时间: 7年前

内容简介:前段时间看到群里有不少同学在讨论,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 就蛮不错的:

Web技巧(08)

有关于CSS手风琴更多的效果可以点击 这里这里 查阅。

实现Accordion的效果除了CSS之外,还有一个更优秀的方案,那就是采用HTML5的 <details><summary> 标签,比如下面这个案例:

有关于 <details><summary> 更详细的介绍可以阅读《 借助HTML5 details,summary无JS实现各种交互效果 》一文。另外,这两个标签结合在一起还可以 实现一些其他的交互效果

CSS Modal

模态弹出框也可以使用 :target 或借助 radiocheckboxchecked 来完成:

同时还可以借助 animation.css 中提供的 animation 效果 ,让Modal的出现和隐藏带有一些动效。比如像 Light Modal提供的效果

有关于CSS实现Modal的更多效果 可以点击这里查阅

CSS Tabs

原理是一样的, :targetchecked 配合 ~ 一起。有关于 CSS实现Tabs 更多的 案例 可以 点击这里

CSS Tooltips

提示框通常是借助CSS状态选择器中的 :hover:focus 来实现,也是非常常见的一个效果:

如果要实现点击显示或隐藏提示框,那还得借助 checkboxradiochecked 来完成。除此之外还可以使用 :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来完成,不过需要配合 inputchecked 一直处理:

有关于评分系统更多的案例 可以点击这里查阅

CSS Scrollbar

在Webkit内核下,可以借助Scrollbar相关的伪元素选择器实现自定义滚动条效果:

小结

文章中提到的这些效果,在以往较多情形之下,或者说一定得依赖JavaScript一起才能完成。随着CSS特性越来越强大,以前很多常见的Web效果(交互效果)就可以使用纯CSS来完成。上面是我能想到的一些常见效果,效果中常用到的是 :target:focus-withininputchecked~ (或 + )选择器来完成。虽然CSS能实现这些效果,但对于HTML的结构有较强的要求,如果结果没有写好,要实现这些相应的交互效果就较为困难。另外,HTML5的一些新标签也能很好的帮助我们实现一些效果,比如使用 <details> 实现手风琴,下拉菜单等效果,使用 type="range"progressmeter 可以实现一些进度条和滑块的效果。

如果您在这方面有相应的经验,欢迎在下面的评论中与我们一起分享。


以上所述就是小编给大家介绍的《Web技巧(08)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Chinese Authoritarianism in the Information Age

Chinese Authoritarianism in the Information Age

Routledge / 2018-2-13 / GBP 115.00

This book examines information and public opinion control by the authoritarian state in response to popular access to information and upgraded political communication channels among the citizens in co......一起来看看 《Chinese Authoritarianism in the Information Age》 这本书的介绍吧!

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具