侧边导航栏(抽屉式设计)界面 (html + css)

简介: 写在前面哈喽~大家好,这篇呢带来的是侧边导航栏(抽屉式设计),采用 (html + css) 来实现的,编辑器是 WebStorm 。接下来来看看效果吧。


写在前面

哈喽~大家好,这篇呢带来的是侧边导航栏(抽屉式设计),采用 (html + css) 来实现的,编辑器是 WebStorm 。接下来来看看效果吧。


效果

3.gif

首先我们要导入阿里的图标样式文件(如何使用参考这篇大佬写的博客),将图标样式、字体样式导入到项目中,新建 css 样式文件。

导入

<link rel="stylesheet" href="css/css1.css" type="text/css">
    <link rel="stylesheet" href="css/css2.css" type="text/css">

image.gif

先设置全部的边距与常用的全局变量(配色问题的话可以参考这个配色网站,或者可以下载 .chm 文件,.chm 的文件链接我放在下面)

image.png

*{
    margin: 0;
    padding: 0;
/*    全局设置为0内外边距*/
}
:root{
    /*:root是指文档的根元素,在其中定义的变量可作为全局变量*/
    /*可以理解为 c语言 在main函数,定义的全局变量*/
    --color-menu-bg: #fff;
    --font-color-mi: #fdb095;
    --font-color-mi-hover: #7facd6;
    --color-bg-mi-hover: #e8b7d4;
    --border-radius-mi:2px;
    --transition-menu-time: 0.2s;
    --color-line-bg: #d3d3d3;
    --color-zidingyi:#210440;
}

image.gif

先写入 基本框架

<div class="content">
        <div class="menu-box">
            <input type="checkbox" id="menu-btn">
            <label for="menu-btn"><i></i></label>
            <div class="menu">
            </div>
        </div>
    </div>

image.gif

然后在 css 样式文件写入这些类标记

.content{
    background-color: #e7e7e7;
    min-height: 100vh;
}
.menu-box{
    font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Sans', Arial, sans-serif;
    letter-spacing: 0.5px;
    /*设置字母之间的间距*/
    font-weight: 600;
    position: relative;
    width: fit-content;
    /* fit-content 作用: 根据内容自适应宽度 可以结合margin-auto 来实现居中*/
    min-height: 100vh;
    /*浏览器可见视口【高度】的百分比(1vh代表视窗【高度】的1%)*/
    padding: 6px 12px;
    box-sizing: border-box;
    /*border-box是指将边框border和内边距padding在现有元素的宽度和高度内设置*/
    /*background-color: var(--color-menu-bg);*/
    background-color: var(--color-zidingyi);
}
.menu-box>input#menu-btn:checked+label>i{
    transform: rotate(180deg);
}
/*
A+B{}这个+是选择相邻兄弟,称作“相邻兄弟选择器”,如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,
可以使用相邻兄弟选择器,例如,如果要增加紧接在 h1 元素后出现的段落的上边距,可以这样写:
  h1 + p {margin-top:50px;}
  这个选择器读作:“选择紧接在 h1 元素后出现的段落,h1 和 p 元素拥有共同的父元素”。};
*/
.menu{
    font-size: 18px;
    width: 250px;
    min-height: 100%;
    cursor: pointer;
    overflow: hidden;
    transition: width var(--transition-menu-time);
    color: var(--font-color-mi);
}

image.gif

然后这里有一个细节:我们在 input 的 type 为 checkbox 这里要重新定义,否则的话会这样


image.png

.menu-box input[type='checkbox'] {
    display: none;
    /*隐藏原生的多选框*/
}

image.gif

然后将 html 的 label 改为:

<label for="menu-btn"><i class="iconfont icon-page_returns"></i></label>

image.gif

再则写入 “首页” 与 “列表1”

<div class="menu-title">
                    <h1>首页</h1>
                </div>
                <div class="menu-item">
                    <input type="checkbox" id="menu-item1">
                    <label for="menu-item1">
                        <i class="menu-item-icom iconfont icon-a-01-data_center"></i>
                        <span>列表1</span>
                        <i class="menu-item-last iconfont icon-down"></i>
                    </label>
                    <div class="menu-content">
                        <span>列表1.a</span>
                        <span>列表1.b</span>
                        <span>列表1.c</span>
                    </div>
                </div>

image.gif

css 写入:

/*
    A~B 选择前面有A元素的每个 B 元素,即选择 A 之后出现的所有 B,两种元素必须拥有相同的父元素,但 B 不必紧随 A。
*/
.menu-box > input#menu-btn:checked ~ .menu{
    width: 0;
}
.menu-title{
    text-align: center;
    margin-bottom: 10px;
}
.menu-item>label{
    position: relative;
    display: flex;
    width: 100%;
    height: 50px;
    border-radius: var(--border-radius-mi);
    align-items: center;
}
.menu-item>label:hover{
    color: var(--font-color-mi-hover);
}
.menu-item>label>i:first-child{
    flex: none;
    margin-right: 6px;
    font-size: 24px;
}
.menu-item>label>span{
    flex: 1;
}
.menu-item>label>i:last-child{
    flex: none;
    font-size: 20px;
    font-weight: 900;
    transform: rotate(0deg);
    transition: transform var(--transition-menu-time);
}
.menu-item>input:checked+label>i:last-child{
    transform: rotate(180deg);
}
.menu-content{
    height: 0;
    overflow: hidden;
    /*清除浮动*/
    transition: height var(--transition-menu-time);
    display: flex;
    /*规定弹性项目会在需要时换行。*/
    flex-wrap: wrap;
    background-color: var(--color-zidingyi);
}

image.gif

打开网页,这时实现了列表1,同样的道理,复制粘贴,然后修改文字

image.png

最后剩下了设置那一块了,写入 html 与 css :

<div class="set-line"></div>
                <div class="menu-item">
                    <label>
                        <i class="menu-item-icon iconfont icon-a-08-Setting"></i>
                        <span>设置</span>
                    </label>
                </div>

image.gif

.set-line {
    margin: 20px 0 10px 0;
    width: 100%;
    height: 2px;
    background-color: var(--color-line-bg);
}

image.gif

点击运行,就 ok 了

.chm 链接

链接:https://pan.baidu.com/s/1rPz854DX_FQc3-ifZt_uEQ 

提取码:07js

(求关注)

相关文章
用html+javascript打造公文一键排版系统1:设计界面
用html+javascript打造公文一键排版系统1:设计界面
|
1月前
|
前端开发 JavaScript 搜索推荐
打造个人博客网站:从零开始的HTML和CSS之旅
【9月更文挑战第32天】在这个数字化的时代,拥有一个个人博客不仅是展示自我的平台,也是技术交流的桥梁。本文将引导初学者理解并实现一个简单的个人博客网站的搭建,涵盖HTML的基础结构、CSS样式的美化技巧以及如何将两者结合来制作一个完整的网页。通过这篇文章,你将学会如何从零开始构建自己的网络空间,并在互联网世界留下你的足迹。
|
19天前
|
JSON 移动开发 数据格式
html5+css3+js移动端带歌词音乐播放器代码
音乐播放器特效是一款html5+css3+js制作的手机移动端音乐播放器代码,带歌词显示。包括支持单曲循环,歌词显示,歌曲搜索,音量控制,列表循环等功能。利用json获取音乐歌单和歌词,基于html5 audio属性手机音乐播放器代码。
69 6
|
2月前
Twaver-HTML5基础学习(29)界面交互
这篇文章介绍了Twaver-HTML5中界面交互的多种模式,包括默认模式、编辑模式、创建网元模式、创建连线模式、创建形状连线模式、创建形状网元模式、触屏模式和放大镜模式,并提供了相应的代码示例。
70 11
Twaver-HTML5基础学习(29)界面交互
|
1月前
|
前端开发 JavaScript 搜索推荐
打造个人博客网站:从零开始的HTML与CSS之旅
【9月更文挑战第31天】在这个数字时代,拥有一个个人博客网站是展示自我、分享知识和连接世界的重要方式。本文将引导你通过简单的HTML和CSS知识,一步步构建起你的在线空间。无论你是编程新手还是希望通过实践加深理解,这篇文章都将是你的理想指南。我们将探索基本概念,实现页面布局,并点缀以个性化样式,最终将静态页面转变为动态交互式网站。准备好了吗?让我们开始吧!
|
2月前
|
前端开发 数据安全/隐私保护 容器
HTML+CSS 水滴登录页
该代码实现了一个创意的水滴登录页面,包含一个水滴形状的登录框与两个按钮(忘记密码和注册)。登录框包括用户名、密码输入框及登录按钮。页面设计独特,采用渐变色与动态效果,增强了交互性和视觉美感。以下为关键实现步骤: - 重置默认样式。 - 设置页面背景颜色和尺寸。 - 定义登录表单容器的布局、位置和尺寸。 - 设置登录表单内容样式,包括3D效果和过渡动画。 - 创建伪元素增强水滴效果。 - 设定输入框容器和输入框样式。 - 为提交按钮、忘记密码和注册按钮设定特定样式,并添加悬停效果。
|
2月前
|
前端开发
CSS基础-13-垂直导航栏(详细创建过程)
CSS基础-13-垂直导航栏(详细创建过程)
|
2月前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
|
前端开发
第8天:CSS制作导航栏
今天主要学习了网页导航栏的制作。注意:引入外部CSS样式时,如果使用background:url(../images/1.png),一定记得用..跳出当前文件夹,回到上级目录。 一、导航栏实现步骤: 1、网页整体分为头部、内容、尾部。
1084 0

热门文章

最新文章