css3单选框-【有趣的CSS问题8】纯CSS导航栏标签切换解决方案

2023-09-11 0 289 百度已收录

作者 | 乔科科

链接|

本系列首先讨论一些有趣的 CSS 主题。 不管实用性如何,有些主题旨在拓宽解决问题的思路。 此外,它们还涉及一些容易被忽视的 CSS 细节。

解决问题时不考虑兼容性。 这些问题既疯狂又富有想象力。 想到什么就说什么。 如果在解题过程中有你觉得不熟悉的CSS属性,请尽快去接受辅导。

不断更新,不断更新,不断更新,重要的事情说三遍。

所有主题都汇总在我的 Github () 中。

8.纯CSS导航栏Tab切换解决方案

不使用Javascript,使用纯CSS方案实现类似右图的导航切换

css3单选框-【有趣的CSS问题8】纯CSS导航栏标签切换解决方案

CSS的力量有时超乎我们的想象。 一般来说,选项卡切换确实需要一定的脚本来实现。 让我们看看如何使用 CSS 来完成同样的事情。

实现Tab切换的难点在于如何利用CSS接收用户的点击事件并操作相关节点。 那是:

如何接收点击风暴

如何操作相对 DOM

让我们看看如何使用两种不同的方法来实现需求:

方法1::target伪类选择器

首先,我们需要解决的问题是如何接收点击风暴。 这里第一个方法是:目标伪类接收。

css3单选框-【有趣的CSS问题8】纯CSS导航栏标签切换解决方案

:target 是 CSS3 中的一个新伪类,可用于选择当前活动的目标元素。 当然,通过URL末尾的锚点名称#css3单选框,它可以指向文档中的特定元素。 链接的元素是目标元素。 它需要一个 id 来匹配文档中的目标。

解释很难理解。 我们来看看实际的使用情况。 假设我们的HTML代码如下:

列表1内容:123456

列表2内容:abcdefgkijkl

由于要使用:target,因此需要一个HTML锚点以及该锚点对应的HTML片段。 所以之前的结构需要是:

清单1

清单2

列表1内容:123456

css3单选框-【有趣的CSS问题8】纯CSS导航栏标签切换解决方案

列表2内容:abcdefgkijkl

这样,上面

href="#content2">列表 2

仔细比较一下与之前结构的优缺点。 这里我只是将ul从两个内容的顶部移动到了底部。 我为什么要这样做?

因为这里需要使用同级选择器~。

E~F{ cssRules },CSS3同级选择器(E~F),选择E元素之前的所有同级元素F。

注意这里最重要的一句话是E~F只能选择E元素后面的F元素,所以顺序就变得非常重要。

这样改变位置后,就可以通过同级选择器~来操作整个.nav样式了。

css3单选框-【有趣的CSS问题8】纯CSS导航栏标签切换解决方案

#content1:目标〜.nav李{

// 改变li元素的背景颜色和字体颜色

&:第一个孩子{

背景:#ff7300;

颜色:#fff;

#content2:目标〜.nav李{

// 改变li元素的背景颜色和字体颜色

&:最后一个孩子{

css3单选框-【有趣的CSS问题8】纯CSS导航栏标签切换解决方案

背景:#ff7300;

颜色:#fff;

在上面的 CSS 规则中,我们使用 ~ 选择器来控制触发 #content1:target 和 #content2:target 时两个导航 li 元素的样式。

至此,1、如何接收点击风暴和2、如何操作相关DOM这两个问题已经解决了css3单选框,剩下的就是一些小修复工作了。

Demo戳我:纯CSS导航切换(:target伪类实现)()

方法二:&&

通过使用

类=“内容”>

class="content1"> 列表 1 内容:123456

class="content1"> 列表 2 内容:abcdefgkijkl

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 css3 css3单选框-【有趣的CSS问题8】纯CSS导航栏标签切换解决方案 https://www.wkzy.net/game/196191.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务