Vue 3 + 原生 CSS Float

下面我用 Vue 3 + 原生 CSS Float 给你一份 从概念 → 用法 → 实战 → 注意事项 的完整说明。

⚠️ 先给结论:Float 已不再是主流布局方案,但在某些场景下仍然有用。


一、先给结论(非常重要)

场景 推荐方案
页面整体布局 ✅ Flex / Grid
图文环绕 ✅ Float
左右两栏 ⚠️ Float(需清除)
Vue 3 新项目 ❌ 不推荐

👉 本文是教你"会用",不是"主推"


二、Float 是什么?

Float = 浮动布局

元素脱离正常文档流,向左 / 右浮动

css 复制代码
float: left | right | none;

三、最基础示例(图文环绕)

✅ Vue 3 示例

vue 复制代码
<template>
  <div class="article">
    <img class="float-img" src="/logo.png" />
    <p>这是一段很长很长的内容......</p>
  </div>
</template>

<style scoped>
.float-img {
  float: left;
  width: 120px;
  margin-right: 16px;
}
</style>

📊 效果:

复制代码
[图片] 文字文字文字
文字文字文字文字

✅ 这是 float 最合理的用途


四、左右两栏布局(经典但不推荐)

✅ HTML

vue 复制代码
<template>
  <div class="wrapper">
    <div class="left">左侧</div>
    <div class="right">右侧</div>
  </div>
</template>

✅ CSS

css 复制代码
.wrapper {
  width: 100%;
}

.left {
  float: left;
  width: 200px;
}

.right {
  float: right;
  width: calc(100% - 200px);
}

📊 图示:

复制代码
[ 左侧 ] [        右侧        ]

⚠️ 必须清除浮动,否则高度塌陷


五、✅ 清除浮动(Float 最重要知识点)

✅ 方案一(推荐):clearfix

css 复制代码
.clearfix::after {
  content: "";
  display: block;
  clear: both;
}
vue 复制代码
<div class="wrapper clearfix">
  <div class="left"></div>
  <div class="right"></div>
</div>

✅ 方案二:父元素 overflow

css 复制代码
.wrapper {
  overflow: hidden;
}

⚠️ 会裁剪内容


六、Float 的常见坑(你必须知道)

❌ 1. 父元素高度为 0

css 复制代码
.parent {
  /* 没有高度 */
}
.child {
  float: left;
}

✅ 解决:clearfix


❌ 2. 元素重叠

css 复制代码
.box1 { float: left; }
.box2 { margin-left: 100px; }

✅ float 元素不占文档流


❌ 3. 响应式灾难

css 复制代码
@media (max-width: 768px) {
  .left, .right {
    float: none;
    width: 100%;
  }
}

👉 Flex 一行搞定


七、Float vs Flex(对比)

对比项 Float Flex
学习成本 ✅ 低 ✅ 中
自动换行 ❌ ✅
居中对齐 ❌ ✅
等高布局 ❌ ✅
现代项目 ❌ ✅

八、Vue 3 中 Float 的合理用法

✅ 图文混排

✅ 文章页

✅ 老项目维护

❌ 页面整体布局

❌ 组件布局


九、企业项目中 Float 的正确姿势

css 复制代码
/* 只用于内容层 */
.article img {
  float: left;
  margin-right: 16px;
}

/* 布局层 */
.layout {
  display: flex;
}

十、一句话总结

✅ Float 不是布局工具,是"文字环绕工具"

✅ Vue 3 新项目:能用 Flex 就不用 Float

✅ 用 Float 一定要清除浮动


如果你愿意,我可以下一步帮你:

  • ✅ 用 Flex 重写一个 Float 布局
  • ✅ 对比 Float / Flex / Grid
  • ✅ 帮你判断 你当前页面该不该用 Float

你现在是在 维护老项目 还是 写新 Vue 3 页面?

相关推荐
Lvan的前端笔记28 分钟前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker
三天不学习1 小时前
Egg.js 4 突然爆火,原因是否归结于AI 原生落地需求爆发?
前端·javascript·全栈·egg.js
xcs194052 小时前
前端 vue 的前端页面debugger 进不去
前端·javascript·vue.js
明月_清风3 小时前
Deno 终局来了:从挑战 Node 到被 Cloudflare 收编
前端·后端·node.js
Csvn4 小时前
框架性能优化
前端
雪芽蓝域zzs5 小时前
第 5 节:Marker 点击弹出 InfoWindow 信息窗口
vue.js
回眸&啤酒鸭5 小时前
【回眸】OpenSwarm 多智能体协作系统实战指南
大数据·前端·人工智能
用户69371750013845 小时前
2026,程序员的时代拐点到了
android·前端·后端
大龄秃头程序员5 小时前
一次 iBeacon + BLE 无感解锁方案的实现记录
前端
小兔子6 小时前
Python 的 GIL 与 free-threading:3.13 之后「去 GIL」走到哪一步了
前端