以下是一个用 Vue 和 CSS 实现的简单网站示例,包含导航栏、logo 图片区域和右侧内容区域,内容区域包括简介、新闻中心和制度公告。鼠标悬停在标题上时,会在下方显示一个盒子,盒子用来存放对应内容,内容可点击。

HTML 代码如下:

<template>
  <div>
    <nav>
      <div class='logo'>
        <img src='./logo.png' alt='logo'>
      </div>
      <div class='menu'>
        <ul>
          <li @mouseover='showBox('intro')' @mouseleave='hideBox'>简介</li>
          <li @mouseover='showBox('news')' @mouseleave='hideBox'>新闻中心</li>
          <li @mouseover='showBox('policy')' @mouseleave='hideBox'>制度公告</li>
        </ul>
      </div>
    </nav>
    <div class='content'>
      <div class='box' v-show='showIntro'>
        <h2>简介</h2>
        <p>这是一个简介内容。</p>
      </div>
      <div class='box' v-show='showNews'>
        <h2>新闻中心</h2>
        <ul>
          <li><a href='#'>新闻1</a></li>
          <li><a href='#'>新闻2</a></li>
          <li><a href='#'>新闻3</a></li>
        </ul>
      </div>
      <div class='box' v-show='showPolicy'>
        <h2>制度公告</h2>
        <ul>
          <li><a href='#'>公告1</a></li>
          <li><a href='#'>公告2</a></li>
          <li><a href='#'>公告3</a></li>
        </ul>
      </div>
    </div>
  </div>
</template>

CSS 代码如下:

* {
  box-sizing: border-box;
}

nav {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: #f5f5f5;
  padding: 10px;
}

.logo {
  width: 40%;
}

.logo img {
  width: 100%;
  height: auto;
}

.menu {
  width: 60%;
}

ul {
  list-style: none;
  display: flex;
  justify-content: space-between;
}

li {
  cursor: pointer;
}

.content {
  display: flex;
  justify-content: space-between;
  margin-top: 20px;
}

.box {
  width: 30%;
  background-color: #f5f5f5;
  border: 1px solid #ddd;
  padding: 10px;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  display: none;
}

.box h2 {
  font-size: 1.2rem;
  margin-bottom: 10px;
}

.box ul {
  margin-top: 10px;
  list-style: none;
  padding-left: 0;
}

.box li {
  margin-bottom: 5px;
}

.box a {
  color: #333;
  text-decoration: none;
}

.box a:hover {
  text-decoration: underline;
}

JavaScript 代码如下:

<script>
export default {
  data() {
    return {
      showIntro: false,
      showNews: false,
      showPolicy: false
    }
  },
  methods: {
    showBox(type) {
      switch (type) {
        case 'intro':
          this.showIntro = true;
          break;
        case 'news':
          this.showNews = true;
          break;
        case 'policy':
          this.showPolicy = true;
          break;
      }
    },
    hideBox() {
      this.showIntro = false;
      this.showNews = false;
      this.showPolicy = false;
    }
  }
}
</script>

说明:

  • 通过<template>标签定义了 HTML 模板。
  • 通过 CSS 样式定义了导航栏、logo 图片区域和右侧内容区域的样式。
  • 通过 JavaScript 代码实现了鼠标悬停时显示对应盒子的功能,使用了 Vue 的数据绑定和条件渲染功能。
Vue 和 CSS 实现网站导航栏和内容区域鼠标悬停显示

原文地址: https://www.cveoy.top/t/topic/lNlv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录