请问像图中这样的左侧导航栏怎么写?

前端新手,写不出来图中左侧导航栏这个样子,求助,谢谢大神们图片描述

阅读 6.3k
4 个回答
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>demo</title>
    <style type="text/css">
        *{
            padding: 0px;
            margin: 0px;
        }
        a{
            text-decoration: none;
        }
        nav {
            width: 180px;
        }
        nav li{position: relative;}
        nav li a{
            line-height: 28px;
            display: block;
            color: black;
            background: #FAFAFA;
            text-align: center;
            position: relative;
            font-size: 12px;
            border: 1px solid #ECECEC;
            margin-top: -1px;
        }
        nav li a:before{
            content: "";
            background: red url(写上雪碧图的地址) no-repeat;
            display: block;
            width: 14px;
            height: 14px;
            position: absolute;
            top: 6px;
            left: 31px;
            border-radius: 100%;
        }
        nav li a:hover{
            background:#FFFFFF;
            border-right-color: #FFFFFF;
        }
        nav li .air{
            position: absolute;
            top: 50%;
            margin-top: -9px;
            right: 10px;
            display: block;
            background: #ED8B8A;
            border-radius: 10px;
            padding: 1px 9px;
            color: white;
            font-size: 12px;
        }
    </style>
</head>
<body>
    <nav>
        <ul>
            <li><a href="">用户信息</a></li>
            <li><a href="">我的收藏</a></li>
            <li><a href="">订阅信息</a></li>
            <li><a href="">浏览历史</a></li>
            <li><a href="">消息中心 </a><span class='air'>1</span></li>
        </ul>
    </nav>
</body>
</html>

大概帮写了一下.因为截图比较模糊.如果有色差和宽度大小不一样.稍微调整一下就可以了
把所需要用到的图片整理成雪碧图

nav li a:before{
            content: "";
            background: red url(写上雪碧图的地址) no-repeat;
            ....
}

这段css换成你的雪碧图地址.然后每个li标签添加个独一的class单独操作这个class 进行background-position选择图片
点击这里预览

可以用一些插件如bootstrap,就像标签页,只是把顶部导航栏放到了左侧,设置一下css样式就可以。如果你刚开始学前端,可以尝试学一下Vue.js,前端框架,挺不错的,在里面可以用路由控制导航栏内容,可以用Element UI,图标可以使用font-awesome,官网就可以看使用方法。

下面是我一个项目中用到的sidebarcss,仅供参考,主要是用到了position: fixed

.sidebar {
    width: 218px;
    position: fixed;
    top: 51px;
    bottom: 0;
    left: 0;
    z-index: 1000;
    display: block;
    overflow-x: hidden;
    overflow-y: auto;
    background-color: #2b2b2b;
 }               
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题