CSS之导航栏

小序

凡所经历,皆为过往
但终会在记忆和时光中留痕

今天接着上面谈谈CSS
CSS除了简单的文字背景样式外,还有着多样的格式
本篇文章笔者将谈一谈导航栏 今天这篇会涉及HTML和VUE哦~ ~ ~

目录

  • 小序
  • 正文
    • HTML
      • 垂直导航栏
      • 水平导航栏
    • VUE
  • 结束语

正文

导航栏的规整是网页美观的必需品
各式各样的功能也需要导航栏来为用户精准指引
首先,我们先来看看HTML的导航栏
我们废话不多说,直接上代码 看效果

HTML

垂直导航栏

DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS垂直导航栏title>
<style>
ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    width: 200px;
    background-color: #f1f1f1;
}

li a {
    display: block;
    color: #000;
    padding: 8px 16px;
    text-decoration: none;
}

li a.active {
    background-color: pink;
    color: white;
}

li a:hover:not(.active) {
    background-color: #33CCFF;
    color: white;
}
style>
head>
<body>

<h2>垂直导航h2>
<p> "active" 指代选中情况p>

<ul>
  <li><a class="active" href="#home">主页a>li>
  <li><a href="#content1">内容1a>li>
  <li><a href="#content2">内容2a>li>
  <li><a href="#content3">内容3a>li>
ul>

body>
html>

效果如图:
CSS之导航栏_第1张图片
CSS之导航栏_第2张图片

水平导航栏

DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS水平导航栏title>
<style>
ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background-color: #FF00CC ;
}

li {
    float: left;
    border-right:1px solid #bbb;
}

li:last-child {
    border-right: none;
}

li a {
    display: block;
    color: white;
    text-align: center;
    padding: 14px 16px;
    text-decoration: none;
}

li a:hover:not(.active) {
    background-color: #CCCCFF;
}

.active {
    background-color: #99CCFF;
}
style>
head>
<body>

<ul>
  <li><a class="active" href="#home">主页a>li>
  <li><a href="#content1">内容1a>li>
  <li><a href="#content2">内容2a>li>
  <li><a href="#content3">内容3a>li>
ul>

body>
html>

效果如下:
水平导航栏
下拉菜单

DOCTYPE html>
<html>
<head>
<title>CSS导航下拉菜单title>
<meta charset="utf-8">
<style>
.dropbtn {
    background-color: #9966FF;
    color: white;
    padding: 15px;
    font-size: 15px;
    border: none;
    cursor: pointer;
}

.dropdown {
    position: relative;
    display: inline-block;
}

.dropdown-content {
    display: none;
    position: absolute;
    background-color: #CCCCFF;
    min-width: 130px;
    box-shadow: 0px 8px 8px 0px rgba(0,0,0,0.1);
}

.dropdown-content a {
    color: black;
    padding: 8px 5px;
    text-decoration: none;
    display: block;
}

.dropdown-content a:hover {background-color: #f1f1f1}

.dropdown:hover .dropdown-content {
    display: block;
}

.dropdown:hover .dropbtn {
    background-color: #3366FF;
}
style>
head>
<body>


<div class="dropdown">
  <button class="dropbtn">下拉菜单button>
  <div class="dropdown-content">
    <a href="">菜单 1a>
    <a href="">菜单 2a>
    <a href="">菜单 3a>
  div>
div>

body>
html>

效果如下:
CSS之导航栏_第3张图片

VUE

下面代码使用了Element-UI 的组件,具体实现为之前的项目经历,读者可根据需要自行改进

<template>
  <el-menu
    class="el-menu-vertical-demo"
    default-active="2"
    :collapse="isCollapse"
    @open="handleOpen"
    @close="handleClose"
    :default-active="routes.path"
    router
    @select="handleSelect"
  >
  <el-radio-group v-model="isCollapse">
    <el-radio-button :label="false" style=""><el-icon><Expand />el-icon>el-radio-button>
    <el-radio-button :label="true"><el-icon><Fold />el-icon>el-radio-button>
  el-radio-group>
    <el-menu-item index="/22">
        <el-icon><location />el-icon>
        <template #title>首页template>
    el-menu-item>
    <el-menu-item index="/upload" style="align-self: center">
      <el-icon><Picture />el-icon>
      <template #title>表情识别template>
    el-menu-item>
    <el-menu-item index="/33">
      <el-icon><VideoCamera />el-icon>
      <template #title>摄像头实时检测template>
    el-menu-item>
    <el-menu-item index="/data">
      <el-icon><View />el-icon>
      <template #title>数据统计template>
    el-menu-item>
    <el-menu-item>
      <el-icon><switchButton />el-icon>
      <template v-for="router in currentRouters">
            <template v-if="!isLogin && !router.meta.isLogin && router.meta.isNav">
                <el-menu-item :index="router.path">el-menu-item>
            template>
            <template v-else-if="isLogin && router.meta.isLogin && router.meta.isNav">
                <el-menu-item :index="router.path">{{ router.name }}el-menu-item>
      template>
    template>
    el-menu-item>
  el-menu>
template>



<style scoped>
.logo{
    max-width: 1024px;
    margin-bottom:10px;
    display: flex;
    flex-direction: column;
    align-items:center;
}
.el-header {
    /*width: 1225px;*/
    /*background-color: #ff6a6c;*/
    width: auto;
    --el-header-padding: 0 100px;
    --el-header-height: 60px;
    padding: var(--el-header-padding);
    box-sizing: border-box;
    flex-shrink: 0;
    height: var(--el-header-height);

}

ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid #e7e7e7;
    background-color: #f3f3f3;
    /*background-color: #c9e7cd;*/
}

li {
    float: left;
}

li a {
    display: block;
    color: #666;
    text-align: center;
    padding: 14px 16px;
    text-decoration: none;
}

li a:hover:not(.active) {
    background-color: #ddd;
}

.active {
    color: white;
    background-color: #89af4c;
}
.el-menu-vertical-demo:not(.el-menu--collapse) {
    /*position: static;*/
  width: 200px;
  min-height: 720px;
  background-color: #1111;
}
.el-menu--collapse{
    background-color: #1111;
    min-height: 720px;
}
style>

效果如下:
CSS之导航栏_第4张图片
本文没有过多的论述和讲解代码,笔者认为单纯看懂并不能解决问题,动手实践恰恰是最好的方式。
欢迎大家积极评论,积极实践

结束语

这是CSS专栏的第三篇啦
希望我能继续坚持更下去
你们的支持是我不竭的动力

谨以此句,送给你们,更勉励自己

不积跬步,无以至千里
不积小流,无以成江海

时间刚刚好
那最后用一段最近听的歌结束吧

从前 追晚风的人
追上了 朦胧的黄昏
追上了 起雾的清晨 与你同尘
悲欢在 记忆里留痕
时光里 在对视的我们
这一路 山海与晨昏
随风而沉

你可能感兴趣的:(css,vue,css,前端,javascript,vue,html)