vue2头部布局示例

网页头部布局(左Logo,右导航)

布局说明

  • 左侧:网站 Logo(可以是文字或图片)

  • 右侧:导航菜单(如:首页、关于我们、服务、联系)

实现方式:使用 Flex 布局

复制代码
<template>
  <div class="header">
    <div class="header-left">
      <img src="logo.png" alt="Logo" class="logo" />
    </div>
    <div class="header-right">
      <ul class="nav">
        <li><a href="#">首页</a></li>
        <li><a href="#">关于我们</a></li>
        <li><a href="#">服务</a></li>
        <li><a href="#">联系</a></li>
      </ul>
    </div>
  </div>
</template>

<script>
export default {
  name: 'HeaderComponent'
}
</script>

<style scoped>
.header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 20px;
  background-color: #f5f5f5;
}

.header-left .logo {
  height: 40px;
}

.header-right .nav {
  list-style: none;
  display: flex;
  gap: 20px;
  margin: 0;
  padding: 0;
}

.header-right .nav li a {
  text-decoration: none;
  color: #333;
  font-weight: bold;
}
</style>

用户信息栏(左头像,右用户名和操作按钮)

布局说明

  • 左侧:用户头像

  • 右侧:用户名 + 操作按钮(如"退出登录")

实现方式:使用 Flex 布局

复制代码
<template>
  <div class="user-bar">
    <div class="user-left">
      <img src="avatar.jpg" alt="头像" class="avatar" />
    </div>
    <div class="user-right">
      <span class="username">张三</span>
      <button @click="logout">退出登录</button>
    </div>
  </div>
</template>

<script>
export default {
  methods: {
    logout() {
      alert('已退出登录');
    }
  }
}
</script>

<style scoped>
.user-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px;
  background: #eee;
}

.user-left .avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
}

.user-right {
  display: flex;
  align-items: center;
  gap: 10px;
}
</style>

商品展示栏(左图,右描述)

布局说明

  • 左侧:商品图片

  • 右侧:商品名称、价格、购买按钮

实现方式:使用 Flex + 固定宽度

复制代码
<template>
  <div class="product-card">
    <div class="product-image">
      <img src="product.jpg" alt="商品图" />
    </div>
    <div class="product-info">
      <h3>智能手表</h3>
      <p>价格:¥999</p>
      <button>立即购买</button>
    </div>
  </div>
</template>

<style scoped>
.product-card {
  display: flex;
  border: 1px solid #ccc;
  padding: 10px;
}

.product-image img {
  width: 120px;
  height: auto;
}

.product-info {
  margin-left: 20px;
}
</style>

日程安排头部(左日期,右操作)

布局说明

  • 左侧:当前日期

  • 右侧:添加日程、筛选按钮

实现方式:使用 justify-content: space-between

复制代码
<template>
  <div class="schedule-header">
    <div class="date">2025年9月3日</div>
    <div class="actions">
      <button>添加日程</button>
      <button>筛选</button>
    </div>
  </div>
</template>

<style scoped>
.schedule-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #f0f8ff;
  padding: 10px 20px;
}

.actions button {
  margin-left: 10px;
}
</style>

使用 float 实现网页头部左右布局

布局说明

  • 左侧:Logo(浮动到左边)

  • 右侧:导航菜单(浮动到右边)

  • 使用 clearfix 清除浮动影响

Vue 2 示例代码(float 方式)

复制代码
<template>
  <div class="header">
    <div class="logo">MySite</div>
    <ul class="nav">
      <li><a href="#">首页</a></li>
      <li><a href="#">产品</a></li>
      <li><a href="#">服务</a></li>
      <li><a href="#">联系我们</a></li>
    </ul>
  </div>
</template>

<script>
export default {
  name: 'HeaderFloat'
}
</script>

<style scoped>
.header {
  background-color: #f8f8f8;
  padding: 15px 30px;
  overflow: hidden; /* 清除浮动 */
}

.logo {
  float: left;
  font-size: 24px;
  font-weight: bold;
  color: #333;
}

.nav {
  float: right;
  list-style: none;
  margin: 0;
  padding: 0;
}

.nav li {
  display: inline-block;
  margin-left: 20px;
}

.nav a {
  text-decoration: none;
  color: #333;
  font-weight: 500;
}
</style>

注意事项

问题 说明
清除浮动 使用 overflow: hiddenclearfix 类来避免父元素高度塌陷
垂直居中 float 本身不支持垂直居中,需额外处理(如设置 line-height
响应式 float 布局在移动端适配上不如 Flex 灵活
可维护性 多个浮动元素容易造成布局混乱,不推荐用于复杂结构

总结

虽然 float 可以实现你要的布局,但现在推荐使用 flexgrid,因为它们更现代、更强大、更易维护。

如何实现"左右分开"的关键技巧:

技巧 说明
display: flex 最常用的方式,设置容器为弹性盒子
justify-content: space-between 左右两边自动拉开距离
margin-leftgap 控制左右元素之间的间距
固定宽度或 flex-grow 控制某一侧占据多少空间
嵌套布局 左右部分内部也可以继续用 flex 或 grid 细分
相关推荐
TextIn智能文档云平台5 分钟前
图片转文字后怎么输入大模型处理
前端·人工智能·python
专注前端30年8 分钟前
在日常开发项目中Vue与React应该如何选择?
前端·vue.js·react.js
文刀竹肃21 分钟前
DVWA -XSS(DOM)-通关教程-完结
前端·安全·网络安全·xss
lifejump25 分钟前
Pikachu | XSS
前端·xss
进击的野人29 分钟前
Vue 组件与原型链:VueComponent 与 Vue 的关系解析
前端·vue.js·面试
馬致远37 分钟前
Vue todoList案例 优化之本地存储
前端·javascript·vue.js
请叫我聪明鸭37 分钟前
CSS实现单行、多行文本超长显示 / 不超长隐藏、悬浮窗超长展示/不超长隐藏、悬浮窗手动控制样式
前端·javascript·css
blackorbird38 分钟前
苹果修复了两个在定向攻击中被利用的Webkit漏洞,其中一个与谷歌ANGLE漏洞同源
前端·webkit
席之郎小果冻38 分钟前
【04】【创建型】【聊一聊,建造者模式】
java·前端·建造者模式
风无雨41 分钟前
在 React 中实现数学公式显示:使用 KaTeX 和 react-katex
前端·react.js·前端框架