首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

纯css导航选中高亮

基础概念

纯CSS导航选中高亮是指使用CSS来实现导航栏中当前选中项的高亮显示效果。这种效果通常用于突出显示用户当前所在的页面或功能模块。

相关优势

  1. 简洁性:纯CSS实现无需JavaScript,代码简洁,易于维护。
  2. 性能:CSS渲染速度快,不会增加额外的JavaScript开销。
  3. 兼容性:CSS选择器广泛支持,兼容性好。

类型

  1. 基于类名的高亮:通过添加或移除类名来实现高亮效果。
  2. 基于伪类的高亮:使用:hover:active:focus等伪类来实现高亮效果。
  3. 基于URL匹配的高亮:通过匹配当前URL与导航项的链接来实现高亮效果。

应用场景

适用于各种网页导航栏,如网站顶部导航、侧边栏导航等。

示例代码

以下是一个基于伪类的纯CSS导航选中高亮示例:

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>纯CSS导航选中高亮</title>
    <style>
        .nav {
            display: flex;
            list-style: none;
            padding: 0;
        }
        .nav li {
            margin-right: 20px;
        }
        .nav a {
            text-decoration: none;
            color: #333;
        }
        .nav a:hover,
        .nav a:focus {
            color: #f00;
            font-weight: bold;
        }
    </style>
</head>
<body>
    <ul class="nav">
        <li><a href="#home">Home</a></li>
        <li><a href="#about">About</a></li>
        <li><a href="#services">Services</a></li>
        <li><a href="#contact">Contact</a></li>
    </ul>
</body>
</html>

参考链接

MDN Web Docs - CSS Selectors

常见问题及解决方法

  1. 高亮效果不明显:检查CSS选择器是否正确,确保高亮样式没有被其他样式覆盖。
  2. 高亮效果不持久:如果是基于伪类的高亮,确保用户交互(如鼠标悬停、点击)能够触发高亮效果。
  3. URL匹配高亮不准确:可以使用JavaScript辅助实现更精确的URL匹配高亮效果。

解决方案

如果需要更复杂的选中高亮逻辑,可以结合JavaScript来实现。例如,通过监听路由变化来动态添加或移除高亮类名。

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>纯CSS导航选中高亮</title>
    <style>
        .nav {
            display: flex;
            list-style: none;
            padding: 0;
        }
        .nav li {
            margin-right: 20px;
        }
        .nav a {
            text-decoration: none;
            color: #333;
        }
        .active {
            color: #f00;
            font-weight: bold;
        }
    </style>
</head>
<body>
    <ul class="nav">
        <li><a href="#home" class="active">Home</a></li>
        <li><a href="#about">About</a></li>
        <li><a href="#services">Services</a></li>
        <li><a href="#contact">Contact</a></li>
    </ul>

    <script>
        const links = document.querySelectorAll('.nav a');
        const currentPath = window.location.hash;

        links.forEach(link => {
            if (link.getAttribute('href') === currentPath) {
                link.classList.add('active');
            }
        });
    </script>
</body>
</html>

通过这种方式,可以实现更精确的导航选中高亮效果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 【CSS】828- 纯CSS导航栏下划线跟随效果

    所以我一直在想,有没有可能只使用 CSS 完成这个效果呢?...定义需求 我们定义一下简单的规则,要求如下: 不可思议的CSS 导航栏 光标小下划线跟随 PURE CSS...Nav Underline 导航栏目的 li 的宽度是不固定的 当从导航的左侧 li 移向右侧 li,下划线从左往右移动。...同理,当从导航的右侧 li 移向左侧 li,下划线从右往左移动。 实现需求 第一眼看到这个效果,感觉这个跟随动画,仅靠 CSS 是不可能完成的。...现在还剩下一个最难的问题: 如何让线条跟随光标的移动动作,实现当从导航的左侧 li 移向右侧 li,下划线从左往右移动。同理,当从导航的右侧 li 移向左侧 li,下划线从右往左移动。

    3K20

    纯CSS编写三级导航菜单-附源码

    在我们日常浏览网站过程中,会发现每一个网站都会有导航栏,导航栏是做什么的?在一个网站中具有怎么样的意义呢?我们先来了解一下这个问题。...正文 导航栏中涉及到多级导航,本次我们演示的主要是三级导航栏,在深入的层级按照同样的理论进行复制即可。下面一起来看一下吧! 实现效果 ?...实现原理 一级导航的实现是非常简单的,我们直接通过经典的ul、li模式去实现即可,这里面不做太多的说明了。 二级导航主要是基于一级导航进行父子层级操作。对顶级的ul进行绝对定位操作。...3、CSS锚伪类 在支持 CSS 的浏览器中,链接的不同状态都可以不同的方式显示,这些状态包括:活动状态,已被访问状态,未被访问状态,和鼠标悬停状态。...提示: 在 CSS 定义中,a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的。 在 CSS 定义中,a:active 必须被置于 a:hover 之后,才是有效的。

    2.9K10

    zblogphp导航高亮代码分享教程

    导航高亮如本站演示,首页、列表页、文章页均可高亮。...因为本站的主题是一个免费的zblogphp主题,所以一些好的东西可能没有,所以只好自己研究,本身自带导航高亮的功能,但是只有首页和列表页才有高亮显示,于是在zblog论坛寻找教程,找到一个教程是涂涂研版写的...比较沮丧,本想放弃这个功能,但是不甘心,所有又尝试了一下,导航高亮终于成功了,要感谢一下天兴工作室的指导。...文章页导航演示图。 ?...大概说一些js的文件代码的意思,打开网站,首先判断是页面,如果是列表页,则加载列表页代码,增加class=“on2” 如果是文章页,判断上级分类ID,然后加载class="on2" zbp导航高亮代码修改完毕

    1.5K10

    不可思议的纯CSS导航栏下划线跟随效果

    先上张图,如何使用纯 CSS 制作如下效果? 在继续阅读下文之前,你可以先缓一缓。尝试思考一下上面的效果或者动手尝试一下,不借助 JS ,能否巧妙的实现上述效果。 OK,继续。...定义需求 我们定义一下简单的规则,要求如下: 假设 HTML 结构如下: 不可思议的CSS 导航栏 光标小下划线跟随 PURE CSS Nav Underline 导航栏目的 li 的宽度是不固定的 当从导航的左侧 li 移向右侧 li,下划线从左往右移动。...同理,当从导航的右侧 li 移向左侧 li,下划线从右往左移动。 实现需求 第一眼看到这个效果,感觉这个跟随动画,仅靠 CSS 是不可能完成的。...现在还剩下一个最难的问题: 如何让线条跟随光标的移动动作,实现当从导航的左侧 li 移向右侧 li,下划线从左往右移动。同理,当从导航的右侧 li 移向左侧 li,下划线从右往左移动。

    2.1K30

    不可思议的纯CSS导航栏下划线跟随效果

    先上张图,如何使用纯 CSS 制作如下效果? 在继续阅读下文之前,你可以先缓一缓。尝试思考一下上面的效果或者动手尝试一下,不借助 JS ,能否巧妙的实现上述效果。 OK,继续。...定义需求 我们定义一下简单的规则,要求如下: 假设 HTML 结构如下: 不可思议的CSS 导航栏 光标小下划线跟随 PURE CSS Nav Underline 导航栏目的 li 的宽度是不固定的 当从导航的左侧 li 移向右侧 li,下划线从左往右移动。...同理,当从导航的右侧 li 移向左侧 li,下划线从右往左移动。 实现需求 第一眼看到这个效果,感觉这个跟随动画,仅靠 CSS 是不可能完成的。...现在还剩下一个最难的问题: 如何让线条跟随光标的移动动作,实现当从导航的左侧 li 移向右侧 li,下划线从左往右移动。同理,当从导航的右侧 li 移向左侧 li,下划线从右往左移动。

    1.7K30

    不可思议的纯CSS导航栏下划线跟随效果

    先上张图,如何使用纯 CSS 制作如下效果? ? 在继续阅读下文之前,你可以先缓一缓。尝试思考一下上面的效果或者动手尝试一下,不借助 JS ,能否巧妙的实现上述效果。 OK,继续。...定义需求 我们定义一下简单的规则,要求如下: 假设 HTML 结构如下: 不可思议的CSS 导航栏 光标小下划线跟随 PURE CSS Nav Underline 导航栏目的 li 的宽度是不固定的 当从导航的左侧 li 移向右侧 li,下划线从左往右移动。...同理,当从导航的右侧 li 移向左侧 li,下划线从右往左移动。 实现需求 第一眼看到这个效果,感觉这个跟随动画,仅靠 CSS 是不可能完成的。...现在还剩下一个最难的问题: 如何让线条跟随光标的移动动作,实现当从导航的左侧 li 移向右侧 li,下划线从左往右移动。同理,当从导航的右侧 li 移向左侧 li,下划线从右往左移动。

    1.6K20

    纯CSS换肤

    30行代码实现纯CSS—3种换肤 老规矩,先把代码给大家,拿去粘贴直接用,无需引用,不好用评论底下随便喷,我一条一条看。 <!...最保险的写法就是: body>input[type=“radio”]+label+div 这句话的意思是选中body下方的直接子元素,并且它的type值等于radio,等等 这里选中的并不是它,...关键在“ + ”,这是兄弟选择器符号,意为选中该input下边的第一个lable,该label下边的第一个div,最终被选中的只有div,这是重点,被选中的只有div,鼠标点击只有div的颜色才会被切换...checked意为“默认选中”, 我给int2添加了checked就是想页面刚打开的时候不是白色,有一个默认值。 CSS中的checked意义不同,意为此时被选中,那么我执行…

    87810

    谈谈一些有趣的CSS题目(八)-- 纯CSS的导航栏Tab切换方案

    8、纯CSS的导航栏Tab切换方案 不用 Javascript,使用纯 CSS 方案,实现类似下图的导航栏切换: ?...规则中,我们使用 ~ 选择符,在 #content1:target 和 #content2:target 触发的时候分别去控制两个导航 li 元素的样式。...Demo戳我:纯CSS导航切换(:target伪类实现) 法二: &&  上面的方法通过添加  标签添加页面锚点的方式接收点击事件...这样改造之后,当我们点击  元素的时候,相当于点击了 这个单选框表单元素,而这个表单元素被点击选中的时候,又可以被...看看最后的结果: Demo戳我:纯CSS导航切换(label 绑定 input:radio && ~) 所有题目汇总在我的 Github ,发到博客希望得到更多的交流。

    1.7K20

    【CSS】:一种轻量级文字高亮方案——CSS 自定义高亮 API

    但富文本编辑器是通过对原始文本附加额外HTML结构和CSS属性实现的高亮,对原始文本有“侵入”。现在有了新的解决方案 。...经过一番查找,发现一个浏览器的实验特性(CSS Custom Highlight API),恰好能干这个事情(下图是MDN官网的DEMO截图)。 三、CSS 自定义高亮 API 3.1....是什么 CSS 自定义高亮 API 提供了一种方法,它可以让你给文档(document)中的任意文本区域(text range)设置高亮样式(highlight)。 3.2....怎么用 使用“CSS 自定义高亮 API”,分5步: 为你要进行高亮的**文字区域**,创建 `Range` 对象(一段连续的文字区域,对应一个 Range 对象); 为你的**高亮方式**,创建 `Highlight...这并不意味着“CSS Custom Highlight API”是替换掉富文本编辑器的方案,因为 “CSS Custom Highlight API”只是一种实现文字高亮的方案 。

    2.7K40

    多路径来源页面导航高亮以及面包屑导航修改

    原因是业务方面对产品进行多维度的划分(或者对产品进行归档、打标签、收藏等等),反应在前端方面就是同一个页面可以有不同的入口(产品目录结构划分) 干说不如举个例子: “活期储蓄”产品属于负债类理财产品(导航菜单...这就带来了两个问题: 当进入“活期储蓄”产品详情页面的时候,高亮哪个导航菜单 当进入“活期储蓄”产品详情页面的时候,面包屑导航怎么显示 从用户角度来说自然是我从哪里点进去的就高亮哪个菜单,面包屑也真实的反应...“来源路径” 技术背景 项目采用的技术: Vue,Element UI,vue-router 采用的 element ui 的 导航组件和面包屑组件。...前端处理,分别针对导高亮和面包屑处理 思路分析 在进入详情页面的行为中增加标记(我使用 sessionStorage 标记,标记信息包括路径path、title,path用于高亮导航,title用于面包屑展示...) 在离开详情页的时候移除标记(通过路由守卫实现,目的是标记不会带来别的副作用) 根据标记修正菜单高亮、面包屑展示 代码实现 分析完之后发现写代码就跟玩一样,没有什么技术含量,就不贴代码了

    83920
    领券