响应式导航栏-利用纯css实现

2023-05-16

思路:

当屏幕为移动设备时,隐藏导航栏列表项目,显示菜单按钮。给菜单按钮(电脑时隐藏)加入hover 或者checked选择器实现,当hover或者checked的触发时动态修改导航栏列表项目display等其他样式。这样当鼠标单击菜单按钮时就可以动态修改导航栏列表的样式了。(用checked选择器需要在导航栏加一个 checkbox)
展示:

1.pc界面

(提示,我的博客还用了bootstrap样式,自己写的这个导航栏个别样式会被覆盖,导致有些偏差,又稍作了些修改),展示的代码为未修改,最初些的样式代码。)
我的博客应用后界面
示例

2.移动设备界面

我的博客应用后界面
示例

4.示例代码:

<html>
  <head>
    <title></title>
    <meta name="viewport" content="width=320,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
    <meta content="">
    <style>
       .navbar{
           background-color: #34495E;
           height: 50px;
           display: block;
       }
       .navbar .nav-list{
           z-index: 0;
           display: block;

       }
       .navbar .nav-list li{
           list-style: none;
           float: left;
           margin-left: 30px;
       }
       .navbar .nav-list a{
           color: white;
           line-height: 50px;
           text-decoration-line: none;
       }
       .navbar .nav-list  a:hover{
           color: #1ABC9C;

       }
       .navbar input:checked~.nav-list {
           position: absolute;
           padding-bottom: 5px;
           padding-left: 5px;
           padding-right: 5px;
            display: block;
            background-color: #34495E;
            z-index: 0;
            margin-top: 50px;

       }
       .navbar input:checked~.nav-list li{
        clear: both;
        background-color: #34495E;

       }
       .navbar label{
           display: none;
       }
       .navbar .nav-toggle{
           display: none;
       }
       @media screen and (max-width: 600px) {
           .navbar .nav-toggle{
               display: none;
           }
           .navbar label{
               display: block;
               z-index: 4;
           }
           .navbar .nav-list{
               display: none;
               margin-left: 0px;
           }
           .navbar .nav-list li{
               margin-left: 0px;
           }
           .navbar  .menu-icon{
                display: block;
                float: left;
                width: 36px;
                height: 26px;
                line-height: 0;
                padding-top: 10px;
                text-align: center;

           }
           .navbar  .menu-icon>svg path{
                fill: white;
           }
           .navbar  label[for="nav-toggler"] {
                display: block;
                float: left;
                width: 36px;
                height: 36px;
                z-index: 2;
                cursor: pointer;
            }
       }
    </style>
  </head>
  <body>
    <header>

        <nav class="navbar">
            <input type="checkbox" id="nav-toggle" class="nav-toggle"/>
            <label for="nav-toggle">
                <span class="menu-icon">
                    <svg viewBox="0 0 18 15" width="18px" height="15px">
                        <path fill="white" d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.031C17.335,0,18,0.665,18,1.484L18,1.484z"/>
                        <path fill="white" d="M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0c0-0.82,0.665-1.484,1.484-1.484 h15.031C17.335,6.031,18,6.696,18,7.516L18,7.516z"/>
                        <path fill="white" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
                   </svg>
              </span>
            </label>
            <ul class="nav-list">
                <li><a href="#">菜单一</a></li>
                <li><a href="#">菜单二</a></li>
                <li><a href="#">菜单三</a></li>
            </div>
        </nav>
    </header>
  </body>
</html>

(导航栏菜单按钮为svg绘图,可以换成图片。本代码参照jekyll minima主题的导航栏实现的。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

响应式导航栏-利用纯css实现 的相关文章

  • Go语言基础语法_1_2021-10-28

    序言 xff1a 本身 xff0c 我是一个Java开发者 xff0c 但是最近在学习Java虚拟机 xff0c 但是看来看去总是不明白Java虚拟机是怎样实现的 xff0c 而有一本书是 自己动力手写Java虚拟机 xff0c 是用go语
  • debian(Linux)系统下安装jdk1.8

    第一步 xff1a 下载安装包 下载Linux环境下的jdk8 xff0c 请去 xff08 Java Downloads Oracle xff09 中下载jdk的安装文件 xff1b 由于我的Linux是64位的 xff0c 因此我下载j
  • Codeblocks自动代码格式化

    在代码框里点右键 xff0c 按Format use Astyle就会自动代码格式化了 但是它默认的风格是大括号另起一行 xff0c 很不习惯 xff0c 实际上是可以改的 1 Setting gt Editor gt Source For
  • 无法找到输出设备?

    希望我的方法能帮到你 我的电脑是联想 系统是win11 上次更新之后 扬声器就不能用了 右下角的喇叭是一个叉叉 一直没有放在心上 今天解决了一下 右键显示叉叉的喇叭 gt 希望我的方法 能帮到你
  • java程序设计-第一章

    第一章 教材知识点 概念1 2 什么是计算机1 3 编程语言1 4操作系统 Operating System1 5 操作系统1 6 1 7 1 8 1 10关键术语 教材quiz1 如何换行要点12 打印表格 要点2 域宽3 求半径5 5的
  • 将PHP项目部署到服务器

    CONTENT 流程1 租服务器2 配置环境3 测试4 WINScp上传文件 项目语言php xff0c 连接mysql 流程 租服务器 gt 配置环境 gt 测试php和数据库环境 gt 上传文件 gt 运行 1 租服务器 步骤 xff1
  • pandas scatter_matrix使用

    示例来自 Phython机器学习基础教程 Introduction to Machine Learning with Python 德 Andreas C M ller 美 Sarah Guido 著 张亮 xff08 hysic xff0
  • tensorflow.compat.v1

    tensorflow高版本适配低版本解决方法 IDE PyCharm tf版本 2 4 问题 卸载tensorflow1 14重装了最新的2 4之后 xff0c 使用如下方法 xff0c IDE提示找不到compat模块 span clas
  • 2014.软院.Problem B. 最长连续等差子数列

    题目描述 给定一个长度为N的整数数列 xff0c 你需要在其中找到最长的连续子数列的长度 xff0c 并满足这个子序列是等差的 注意公差小于或等于0的情况也是允许的 输入格式 第一行为数据组数T xff08 1 lt 61 T lt 61
  • Android studio安卓虚拟机无法启动

    1 问题 曾经配置过并成功启动过安卓虚拟机 xff0c 时隔若干年后无法启动 xff0c 并总是自动杀死 xff0c 除此之外没有任何有用信息 xff1a The emulator process for AVD was killed 2
  • jekyll部署 (windows 10)

    windows本地部署 jekyll 搭建git pages过程中 xff0c 发现github编译失败之后处理很麻烦 xff08 多次push xff09 xff0c 于是打算本地搭建一个能编译检查的jekyllwarning xff1a
  • 未知的vue+element UI自动刷新

    每次自动刷新 xff0c URL都从 localhost 8080 url 变为 localhost 8080 url xff0c 此时就应该怀疑原因是表单自动提交导致的刷新了 x1f613 条件 xff1a 没有设置表单规则 gt 因为如
  • 【apollo】源码编译失败-依赖包无法下载-解决方案

    编译报错 执行 xff1a bash apollo sh build opt gpu 报错 xff1a Error downloading https github com bazelbuild rules java archive 981
  • 虚拟机使用主机显卡(hyper-v和WSL2)

    我的系统版本WSL2 43 Ubuntu20 04 43 CUDA启用WSL2 43 安装Ubuntu20 04 主机安装WSL Cuda显卡驱动WSL2 Ubuntu安装cuda和cudnncudacudnn安装TensorFlow使用自
  • Linux 系统 “Read-only file system” ” 错误 与 解决方法

    这个问题经常发生在有大量磁盘读写操作且磁盘分区很大的环境中 xff0c 下面简单描述下此案例的应用环境 xff1a 这是一个 Web 服务器故障案例 xff0c 客户利用两台服务器加一个磁盘阵列做了一个双机热备的 Web 系统 xff0c
  • Failed to start bean ‘documentationPluginsBootstrapper‘; nested exception is java.lang.NullPointerEx

    看了以上午 xff0c 终于找到了问题所在0 0 swagger 与 springboot 使用的时候 xff0c 有一个版本问题 xff1a swagger版本springboot版本2 x2 7 x 一下3 x2 7 x 及以上 不多说
  • 黑客圈最受欢迎的21个 Kali Linux 工具,你都用过哪几个?

    这里是最好的 Kali Linux 工具列表 xff0c 它们可以让你评估 Web 服务器的安全性 xff0c 并帮助你执行黑客渗透测试 如果你读过 Kali Linux 点评 xff0c 你就知道为什么它被认为是最好的黑客渗透测试的 Li
  • 今天第一次加入

    64 TOC今天第一次加入进来 欢迎使用Markdown编辑器 你好 xff01 这是你第一次使用 Markdown编辑器 所展示的欢迎页 如果你想学习如何使用Markdown编辑器 可以仔细阅读这篇文章 xff0c 了解一下Markdow
  • 学习OpenStack之环境部署一篇就够啦!!!(带你走进OpenStack世界)

    文章目录 一 xff1a 项目拓扑1 1 xff1a 环境介绍 二 xff1a 系统环境配置2 1 xff1a 安装 配置MariaDB2 2 xff1a 安装RabbitMQ2 3 xff1a 安装memcached 三 xff1a Ke
  • ccf 炉石传说

    import java util ArrayList import java util Scanner span class hljs comment date 9 11 17 author chaomaer span span class

随机推荐

  • python之paramiko文件夹远程上传

    Paramiko模块是一个用来连接远程服务器 xff0c 进行文件上传下载和shell命令执行的PYTHON模块 xff0c 使用方便 但是它不支持整个文件夹的上传 xff0c 近期需要分发上传一个离线工具包到服务器去执行 xff0c 考虑
  • form表单提交后,页面弹出成功或者失败的信息

    Ssm 中用RedirectAttributes做提示消息 96 span class token annotation punctuation 64 RequiresPermissions span span class token pu
  • Oracle提示表空间不足ORA-01653:

    这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题 xff0c 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中 居左 居右SmartyP
  • 递归删除树节点

    public int delete Long id 删除权限的集合ids List lt Long gt ids 61 new ArrayList lt gt ids add id 递归的将一级分类下的id也加入到集合中 this getI
  • 解决报错:sufficient buffer space or because a queue was full

    An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was
  • java判断字符串(含中文)的内容相似度

    span class token comment 判断地址相似 此处简单的判断字符串的内容80 相似即可 64 param str1 64 param str2 64 return span span class token keyword
  • display:table-cell实现两栏自适应布局

    前面介绍了 float实现两栏自适应布局 float 43 overflow实现两栏自适应布局 xff0c 现在看下table如何实现两栏自适应布局 display table cell lt table gt lt table gt 里的
  • Microsoft Visual C++ 14.0 is required.

    Microsoft Visual C 43 43 14 0 is required Get it with Microsoft Visual C 43 43 Build Tools 当我们安装绝大部分python包的时候可以通过pip in
  • ubuntu20.04离线安装rabbitvcs

    在内网开发的时候 xff0c 管理更新代码非常不方便 xff0c 使用svn是非常普遍的现象 小乌龟svn貌似只有windows版本的 xff0c 在linux系统下与其操作接近的软件rabbitcvs变成了最好的选择 在线安装rabbit
  • 实机安装CentOS7.9操作系统图文(保姆级)教程

    一 制作启动U盘 1 下载Ventoy软件 去Ventoy官网下载Ventoy软件 xff08 Download Ventoy xff09 如下图界面 2 制作启动盘 选择合适的版本以及平台下载好之后 xff0c 进行解压 xff0c 解压
  • Angular8升级至Angular13遇到的问题

    根据项目需求 xff0c 需要把Angular版本从8升级到13 xff0c 无法从8直接升至13 xff0c 需要一级一级的升级 xff0c 本文介绍了在升级Angular版本的时候的一种报错和解决办法 一 开始之前 首先确保你 Node
  • mysql怎么查询表的大小

    通过sql语句查询整个数据库的容量 xff0c 或是单独查看表所占容量 1 要查询表所占的容量 xff0c 就是把表的数据和索引加起来就可以了 1 select sum DATA LENGTH 43 sum INDEX LENGTH fro
  • CEF3 C++接口实现自定义浏览器[simple version]

    目录 目录 1 一 工具准备 2 二 编译C 43 43 接口 2 三 实现浏览器 5 浏览器定制 5 浏览器默认最大化 xff0c 标题从配置文件读取 5 设置浏览器中文环境 xff0c 开启npapi插件功能 xff0c 并注册身份证阅
  • Windows笔记本声音无法找到输出设备

    现象 xff1a 扬声器无法正常工作 xff0c 声音选项提示无法找到输出设备 xff0c 设备管理器的音频输入和输出的声卡文件旁边有黄色的感叹号 xff0c 属性详情里面设备状态提示 xff1a 该设备无法启动 xff08 代码10 xf
  • C++扑克牌发牌

    自动发扑克牌 52张牌无大小王随机发给4个玩家 poker cpp 自动发扑克牌 52张牌无大小王随机发给4个 loaction src poker cpp include lt assert h gt include lt iostrea
  • ArchLinux下i3wm简单配置和美化

    先show下自己配置的截图 简单弄了下 xff0c 凑合用 本文默认你已经安装了基本的archlinux系统 xff0c 只是没有配置桌面环境 所以跳过前面archlinux的基础安装过程 ArchLinux的具体安装请参见我的博客 htt
  • CentOS8下编译配置nginx+rtmp,搭建推流服务器

    一 环境 服务器操作系统 xff1a CentOS Linux release 8 2 2004 Core nginx 版本 https nginx org download nginx 1 18 0 tar gz RMTP模块 xff1a
  • CentOS7网络配置(ping不同的原因及解决方法)

    这是配置好的CentOS7 xff0c 刚开始在Vmware里装CentOS7后是没有ip的 xff0c 原因是CentOS7默认不启动网卡的 xff0c 网卡不启用还ping个毛 进入 etc sysconfig network scip
  • SpringBoot-JPA进行多表连接查询

    通过JPA进行简单的 内 连接查询 1 准备 1 1开发工具Intellij Idea 1 2数据库mysql 1 3新建Spring Initializr项目 xff0c 勾选web mysql rest jpa依赖 2 开始 2 1项目
  • 响应式导航栏-利用纯css实现

    思路 xff1a 当屏幕为移动设备时 xff0c 隐藏导航栏列表项目 xff0c 显示菜单按钮 给菜单按钮 xff08 电脑时隐藏 xff09 加入hover 或者checked选择器实现 xff0c 当hover或者checked的触发时