You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue.js 2如何移除body标签的默认外边距?

解决Vue项目中body默认margin无法移除的问题

别担心,刚接触Vue遇到这种小问题太正常啦!我来帮你搞定这个body外边距的问题~

你之前尝试的方法没生效,大概率是因为样式作用域或者优先级的问题,下面给你几个靠谱的解决思路:

方法一:全局引入重置样式文件

这是最规范的做法,适合后续统一管理全局样式:

  1. 在项目的src/assets文件夹下新建一个reset.css文件,写入重置样式:
/* 全局重置样式,解决body默认margin问题 */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box; /* 可选,方便后续盒模型计算 */
}
body {
  margin: 0;
}
  1. 打开项目入口文件main.js,引入这个重置样式:
import './assets/reset.css'

这样样式会全局生效,覆盖浏览器的默认样式。

方法二:在App.vue中写无作用域的全局样式

如果你不想单独建文件,可以直接在根组件App.vue的<style>标签里写全局样式,但一定要去掉scoped属性:

<template>
  <div id="app">
    <!-- 你的组件内容 -->
  </div>
</template>

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

<style>
/* 注意这里不要加scoped! */
body {
  margin: 0;
}
/* 也可以加上全局重置 */
* {
  margin: 0;
  padding: 0;
}
</style>

为什么要去掉scoped?因为加了scoped的样式会被Vue添加专属属性前缀,只会作用于当前组件内的DOM元素,而body是全局元素,不会带有这个前缀,所以scoped里的body样式根本不会生效——这很可能就是你之前失败的原因!

补充说明

你之前在index.html的head里加样式没生效,是因为Vue打包后的组件样式会被插入到index.html的后续位置,优先级比你写的head内样式高,所以被覆盖了。因此更推荐用上面两种全局引入的方式。

试试上面的方法,应该就能轻松去掉页面四周的8px空白啦~

内容的提问来源于stack exchange,提问作者SeriousLee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:03:35