CSS——网易云音乐首页导航栏的制作

2023-10-31

文章目录


前言

       本文主要介绍了网易云导航栏的制作过程,这个案例中将会运用到CSS中的浮动、绝对定位等相关知识点(这些在以往的文章里有所介绍)


一、结构的布局

示例图

布局分析——

  1. 首先,黑色导航栏的宽度应该是100%的,这样以防止在网页缩放时元素的位置会发生错位的现象。
  2. 其次,导航栏的内部内容可以用一个大的结构包裹,给一个固定宽度的同时,使其在外部容器(黑色导航栏)中可以居中。
  3. 再者就是内容方面的布局,(logo是采用了雪碧图的形式进行设置),将内容进行左右浮动以便确定具体位置,例如右侧搜索音乐区域,就可以利用右浮动固定其位置。

二、实现过程

1.HTML结构

代码如下(示例):

<header>
        <!-- 头部导航条 -->
        <nav class="header-nav">
            <!-- 导航条内容器-->
            <div class="nav-outer">
                <!-- logo区域 -->
                <div id="logo"><a href="#"></a></div>
                <!-- 导航条详细信息 -->
                <ul class="user-list">
                    <li><a href="#">发现音乐</a></li>
                    <li><a href="#">我的音乐</a></li>
                    <li><a href="#">关注</a></li>
                    <li><a href="#">商城</a></li>
                    <li><a href="#">音乐人</a></li>
                    <li><a href="#">下载客户端</a></li>
                    <li class="hot"></li>
                </ul>
                <!-- 右侧搜索框以及用户登录区域 -->
                <ul class="right-list">
                    <li class="search-wrap">
                        <input type="search" placeholder="音乐/视频/电台/用户" οnfοcus="this.placeholder=''"
                            οnblur="this.placeholder='音乐/视频/电台/用户'">
                    </li>
                    <li>
                        <a href="#" id="maker">创作者中心</a>
                    </li>
                    <li class="login">
                        <a href="#">登录</a>
                    </li>
                </ul>
            </div>
        </nav>

        <!-- 快速导航栏 -->
        <nav class="red-nav">
            <div class="inner">
                <ul>
                    <li>
                        <a href="#">推荐</a>
                    </li>
                    <li><a href="#">排行榜</a></li>
                    <li><a href="#">歌单</a><img src="./img/white-r-icon@3x.png" alt="" class="top-icon"></li>
                    <li><a href="#">主播电台</a></li>
                    <li><a href="#">歌手</a></li>
                    <li><a href="#">新碟上歌</a></li>
                </ul>
            </div>
        </nav>
    </header>


2.CSS样式

代码如下(示例):

 <style>
        /* 导航条外部容器 */
        .header-nav {
            width: 100%;
            height: 70px;
            background-color: #242424;
        }

        .nav-outer {
            width: 1100px;
            height: 70px;
            line-height: 70px;
            margin: 0 auto;
        }

        /* logo区域 */
        #logo {
            float: left;
        }

        #logo>a {
            display: block;
            width: 157px;
            height: 69px;
            text-align: center;
            background-image: url(./img/topbar.png);
            background-position: 0px 0px;
            padding-right: 20px;
            color: #fff;
        }

        /* 导航条中部区域 */
        .user-list li {
            float: left;
        }

        .user-list li>a {
            display: inline-block;
            padding: 0 19px;
            color: #ccc;
            font: 14px Arial, Helvetica, sans-serif;
        }

        .user-list li:first-child,
        .user-list li:first-child>a {
            background-color: #000000;
            color: #fff;
        }

        .user-list li:hover {
            background-color: #000000;
        }

        .hot {
            margin-top: 22px;
            margin-left: -12px;
            width: 28px;
            height: 19px;
            background-image: url(./img/topbar.png);
            background-position: -190px 0;
        }

        /* 右侧搜索框区域 */
        .right-list {
            float: right;
        }

        .right-list li {
            float: left;
        }

        .search-wrap {
            width: 158px;
            height: 32px;
            line-height: 32px;
            background-image: url(./img/topbar.png);
            background-position: 0 -99px;
            background-color: #fff;
            border-radius: 32px;
            margin-top: 19px;
        }

        input {
            position: relative;
            width: 128px;
            height: 16px;
            outline: none;
            margin-left: 27px;
            top: -2px;
            border: none;
        }

        input::-webkit-input-placeholder {
            color: #9b9b9b;
            font: 12px Arial, Helvetica, sans-serif;
        }

        input:focus::-webkit-input-placeholder {
            content: ''
        }

        #maker {
            display: block;
            width: 90px;
            height: 32px;
            font-size: 12px;
            font: 12px Arial, Helvetica, sans-serif;
            margin: 19px 0 0 12px;
            box-sizing: border-box;
            padding-left: 16px;
            padding-top: 6px;
            border: 1px solid #4F4F4F;
            background-position: 0 -140px;
            color: #ccc;
            border-radius: 20px
        }

        #maker:hover {
            border-color: #ffffff;
            color: #ffffff;
        }

        .login {
            position: relative;
            top: -22px;
            width: 50px;
            height: 70px;
            margin: 19px 0 0 20px;
            padding: 0 22px 0 0;
        }

        .login>a {
            color: #787878;
            font: 12px Arial, Helvetica, sans-serif;
        }

        .login:hover a {
            text-decoration: underline;
            color: #999999;
        }

        /* 红色导航栏区域 */
        .red-nav {
            width: 100%;
            height: 35px;
            background-color: #c20c0c;
        }

        .inner {
            width: 920px;
            height: 34px;
            margin: 0 auto;
            padding-left: 180px;
        }

        .inner li {
            float: left;
            height: 34px;
        }

        .inner li>a {
            display: block;
            height: 16px;
            line-height: 17px;
            font: 12px Arial, Helvetica, sans-serif;
            color: #ffffff;
            margin: 5px 17px 0px;
            padding: 3px 13px 3px 13px;
        }

        .inner li:first-of-type a {
            background-color: #9b0909;
            border-radius: 20px;
        }

        .inner li:hover a {
            background-color: #9b0909;
            border-radius: 20px;
        }

        .top-icon {
            width: 8px;
            height: 8px;
            position: relative;
            left: 54px;
            top: -23px;
        }

        /* 轮播图区域样式 */
        .outer {
            position: relative;
            width: 100%;
            height: 285px;
        }

        .swiper-inner {
            position: relative;
            width: 984px;
            height: 285px;
            margin: 0 auto;
        }

        .swiper {
            width: 100%;
            height: 285px;
            overflow: hidden;
        }

        .swiper-wrapper>div>img {
            width: 730px;
            height: 285px;
        }

        .download-app {
            position: absolute;
            top: 0;
            left: 730px;
            width: 254px;
            height: 285px;
            background-image: url(./img/download.png);
            z-index: 20;
        }

        .download-app p {
            margin-top: 255px;
            color: #8d8d8d;
            text-align: center;
            font: 12px Arial, Helvetica, sans-serif;
        }
    </style>

总结

       以上就是今日的分享,希望可以帮助到你吧,另外,祝福看到这篇文章的人今天会有一个好心情(祝好运哦~)

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

CSS——网易云音乐首页导航栏的制作 的相关文章

  • 如何在 Bootstrap 4 中隐藏和替换 navbar-toggler-icon?

    如何隐藏和替换 Bootstrap 4 中的导航栏切换图标 现在 下面的代码只是将 X 放在汉堡菜单下方
  • JS - 不可破坏空间的转换   [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在从 HTML 元素中读出文本并
  • 使用复选框清除表单

    我正在尝试使用复选框来清除表单 但我不希望重置来清除复选框本身 我使用的代码如下
  • 使用 CSS3 反转进度条

    我有这个EXAMPLE http jsfiddle net Mils fmaGZ 1 我想将进度条反转 180 度 从右向左进行 要获得这样的东西 我试图改变过渡属性但没有结果 Code progress bar span display
  • 如何用按钮生成不同的颜色

    我是初学者 想知道如何使用生成按钮生成所有不同的颜色 我应该向按钮 addEventListener 的第二个参数添加什么 另外 如何让它在刷新时自动生成颜色而不是不生成颜色 var getcolors document querySele
  • 如何使用 Next Script 精确控制脚本标签的插入位置

    我目前正在尝试将第三方脚本添加到我的 Next js 应用程序中 该脚本会在脚本标签正下方插入一个 iframe 所以我需要精确控制脚本标签在页面上的位置 我目前正在使用下一个 脚本 https nextjs org docs api re
  • 将 JQuery UI Datepicker 与 Jquery UI 主题中的图标结合使用

    我有一个使用 JQuery UI 的日期选择器控件设置 我还使用 JQuery UI 主题 它提供了一堆我想使用的默认图标 DatePicker 允许指定特定图像 即 要显示图标集中的图标 您可以使用以下命令 span class ui i
  • iOS 中输入字段显示不同大小

    我有一个带有背景和固定宽度 高度的输入字段 它在我桌面上的所有浏览器中看起来都很好 但由于某种原因 它看起来更大iPad and iPhone 我在 CSS 中尝试了一些技巧 但到目前为止没有任何效果 width 120px importa
  • 用css制作一个加号[重复]

    这个问题在这里已经有答案了 我有一个模型 用于制作看起来非常简单的加号 然而 我的 CSS 技能并不是很好 制作圆圈没什么大不了的 但在里面制作加号我似乎无法弄清楚 这就是我正在尝试做的事情 Mockup 这是我目前拥有的 到目前为止 这是
  • 在iframe中显示本地htm文件?

    我使用 MailBee NET 对象以 htm 格式在本地计算机上保存一些电子邮件 例如 使用服务器上的电子邮件 messageID 为每封电子邮件创建一个单独的文件夹 D 电子邮件 GmailId1380ec660e0e656a doc
  • 根据屏幕尺寸更改图像 src

    我正在尝试使用媒体查询根据屏幕尺寸更改图像 src 我尝试过背景 url x 但它不起作用 我在某处读到我应该使用 content url x 代替 但是当我这样做时 我得到一个空白页面 谁能告诉我我的代码有什么问题吗 HTML div c
  • 如何从左向右滑动文本和图像并具有滑动效果[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • CONDITION CSS 区分 IE6 到 IE7

    我想声明一个不同于 ie6 和 ie7 的风格 但我的CSS条件被IE7识别为IE6 我用的是XP和explorer 7 这是我使用的代码
  • 如何使用 javascript 将我的域名字母大写?

    假设我的域名是www hello com 如何使用 jQuery JavaScript 使浏览器的 URL 栏看起来像 www HELLO com 您无法更改浏览器地址栏中显示的内容 这是一项基本的安全功能 您可以使您的域名全部大写 并将页
  • Xpath 获取 if href 包含字符串的一部分

    您好 我尝试获取包含 href p random tagged see 的所有元素 这是我的路线 div preceding h2 text Most recent div div a href p tagged see 我该如何修复此代码
  • 如何从代码隐藏中向我的 div 添加点击事件?

    如何从代码隐藏中向我的 div 添加点击事件 当我点击 div 时 会出现一个消息框 其中显示 您想删除它吗 并在框中显示 是 或 否 全部来自后面的代码 while reader Read System Web UI HtmlContro
  • 指定 body CSS 宽度安全吗?

    现在通常满足于以一定的尺寸居中 div Blah div 不使用包装器进行对齐和大小并直接将其应用到body tag 像这样 Blah 尺寸是
  • Django - 渲染到字符串无法加载 CSS

    我正在尝试使用 Django 1 8 render to string 通过管理命令将 html 转换为 pdf 而不是使用 View request 以下代码可以将模板转换为 pdf 但它无法将 CSS 加载到模板中 def html t
  • 单击 html 中的按钮后如何从 javascript 函数写入文件

    我正在尝试编写真正基本的代码 在 html 文件上按下按钮后 通过 JavaScript 函数在本地写入 txt 文件 这不可能吗 我可以仅使用 javascript 文件写入文件 但在尝试同时使用两者时则不能
  • Google 地图 v3 - 阻止 API 加载 Roboto 字体

    Google 将样式添加到地图容器中以覆盖我的样式 我知道如何解决这个问题 但API v3 8 9 exp 还加载了我并不真正需要 想要的网络字体 Roboto 有什么设置 选项 方法可以解决这个问题吗 我可以阻止 API 添加额外的 CS

随机推荐

  • SDN介绍

    随着通信技术的不断发展 SDN已经逐渐成为整个行业注目的焦点 很多人认为SDN技术必将对传统网络带来一次划时代的变革 那么 什么是SDN 我们有应该如何理解和学习SDN 我们为什么需要SDN SDN的实现方式有哪些 SDN的未来发展方向是什
  • Mac安装Redis

    要在Mac上安装Redis 你可以按照以下步骤进行操作 打开终端应用程序 Terminal 可以在 应用程序 文件夹的 实用工具 目录下找到它 或者command 空格 输入ter然后直接回车 确保你已经安装了Homebrew 如果没有 请
  • 解决kibana启动时:3005 - wrong protocol being used to connect to the wazuh api 和 Wazuh API seems to be dow

    解决elasticsearch缺少模板问题 https mp csdn net editor html 112570396 后 依然不能正常检测到 wazuh api 状态 默认ip和端口 现在 解决kibana启动时 3005 wrong
  • Git教程---Windows安装及命令使用(详细例子)

    目录 一 Git的工作原理 二 Git下载及安装 三 Git配置 四 Git命令 示例 参考链接 一 Git的工作原理 Git有四个工作区域 其中三个工作区域工作在本地 一个工作区域工作在远程仓库 本地目录 工作区 平时存放项目代码的位置
  • 使用 Grid 进行常见布局

    grid 布局是W3C提出的一个二维布局系统 通过 display grid 来设置使用 对于以前一些复杂的布局能够得到更简单的解决 本篇文章通过几个布局来对对 grid 布局进行一个简单的了解 目前 grid 仅仅只有 Edge使用前缀能
  • 【windows系统】通过SSH Key访问服务器

    BG 废话不多说 直接上干货 1 终端输入命令 ssh username server 确认是否有自己的用户名 2 查看是否生成过SSH Key ls ssh 未生成过 提示 No such file or directory 生成过 提示
  • 旅游推荐平台

    作者主页 编程千纸鹤 作者简介 Java 前端 Python开发多年 做过高程 项目经理 架构师 主要内容 Java项目开发 毕业设计开发 面试技术整理 最新技术分享 收藏点赞不迷路 关注作者有好处 文末获得源码 项目编号 BS XX 05
  • Flask从入门到做出一个博客的大型教程(三)

    Flask从入门到做出一个博客的大型教程 三 在开始之前 先来看下项目的整体结构 flask app forms py init py routes py templates base html index html login html
  • 导入别人的安卓项目方法-需要修改的配置(Androidstudio)通用解决办法

    导入别人的安卓项目方法 一般导入别人的安卓项目后会遇到一些问题 下面是通用方法 绝大多数情况都能运行出来 步骤一 导入别人的项目报错 步骤二 Androidstudio新建一个空项目 步骤三 找到两个build gradle文件 这两个就是
  • 2021年江苏省职业院校技能大赛中职 网络信息安全赛项试卷--攻击日志解析

    2021年江苏省职业院校技能大赛中职 网络信息安全赛项 attack pacapng攻击日志分析 2021年江苏省攻击日志分析任务书 2021年江苏省攻击日志分析任务书解析 如果有不懂得地方可以私信博主 欢迎交流 交流群 603813289
  • java <? extends T>和<? super T>介绍(一)

  • python安装&配置环境(win10)

    python安装 配置环境 win10 1 打开python官网下载python安装包 操作步骤如下所示 点击 gt python官网链接 1 1 进入官网 1 2 进入下载页面 1 3 选择指定版本的python 本文选择python3
  • 高德地图JS API升级到2.0版本

    项目上反馈高德地图底图信息更新不及时 不利于进行点位规划 经研究发现高德地图JS API 1 4 15版本相对于2 0版本 确实地图切片上的标注信息较少 通过工单的形式询问高德的技术工程师认识到1 4 15版本数据更新有延迟 1 4 15版
  • cin与scanf cout与printf效率问题

    在竞赛中 遇到大数据时 往往读文件成了程序运行速度的瓶颈 需要更快的读取方式 相信几乎所有的C 学习者都在cin机器缓慢的速度上栽过跟头 于是从此以后发誓不用cin读数据 还有人说Pascal的read语句的速度是C C 中scanf比不上
  • warning C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型

    这种警告出现在变量表示范围的临界状态 一 溢出问题 int main int a 2147483648 return 0 在已经定义死int型的情况下 影响不大 但是下面的例子却会由很大的影响 二 类型转化 int main if 2147
  • C语言---数组名与&数组名的区别

    今天在用strsep函数 有一个是双指针类型的形参 的时候 我以为 数组名就是 双指针类型的 但结果却不对 后来查了才知道 虽然数组名与 数组名的值是相同的 但是 他们的类型是不一样的 char str 10 str 的值为str 0 的地
  • JavaScript常见的运用场景

    JavaScript是一种相当流行 高效 便捷的脚本语言 它在 web 开发中发挥着重要的作用 下面我们来介绍下 JavaScript 常见的运用场景 1 网页动态效果制作 JavaScript 可以用来制作网页的多种动态效果 包括但不限于
  • 低功耗技术(一)动态功耗与静态功耗

    一 动态功耗 翻转功耗 Switching Power 翻转功耗是由充放电电容引起的动态功耗 其推导过程很简单 但是这个最终的结果却十分重要 1 switching power 和负载电容 电压 0到1变化事件的发生次数 时钟频率有关 2
  • Tomcat任意写入文件漏洞(CVE-2017-12615)

    声明 好好学习 天天向上 漏洞描述 2017年9月19日 Apache Tomcat官方确认并修复了两个高危漏洞 漏洞CVE编号 CVE 2017 12615和CVE 2017 12616 其中 远程代码执行漏洞 CVE 2017 1261
  • CSS——网易云音乐首页导航栏的制作

    文章目录 前言 一 结构的布局 二 实现过程 1 HTML结构 2 CSS样式 总结 前言 本文主要介绍了网易云导航栏的制作过程 这个案例中将会运用到CSS中的浮动 绝对定位等相关知识点 这些在以往的文章里有所介绍 一 结构的布局 示例图