浏览器页面出现竖向滚动条的解决方案

产生问题的原因

存在着页面居中的需求

如果不做任何配置,盒子只包裹里面的图片、文字,高度不固定。这导致「内容会贴在页面顶部,不会垂直居中」。

为了让 div 盒子的高度撑满整个屏幕,通常会配置 min-height:100vh

再配合:

css 复制代码
 display: flex;
 align-items: center; /* 垂直居中 */
 justify-content: center; /* 水平居中 */

盒子中的内容会居中在屏幕正中央。

然而,问题出现了

浏览器自带默认样式,页面默认有 外边距 margin

在上古时代,网页大多是纯文章,浏览器希望文字不要贴着屏幕边缘,所以 <body> 容器和屏幕边框之间默认有 8px 的距离。

可是已经把 <div> 盒子的高度设置为屏幕高度了。这就多出来 8px,导致页面中展示的内容超过了屏幕高度。

解决方案

要想解决这个问题,可以直接解决掉「容器和屏幕边框之间的默认距离」。

对于 HTML

css 复制代码
 body {
   margin: 0;
 }

对于 Vue

css 复制代码
 :global(body) {
   margin: 0;
 }

Vue 会把组件插入到 <body> 标签内。<body> 不在当前组件里,必须用 :global() 才能选中它。

所以,:global() 一定要有。它让样式全局生效,不被 scope 限制。

三行代码搞定。

相关推荐
铁皮饭盒1 小时前
bun直接tsx,优雅!
javascript·后端
Csvn2 小时前
Monorepo 迁移血泪史:从 Multi-Repo 到 Turborepo,这 3 个坑我帮你踩完了
前端
星栈3 小时前
Dioxus 多页面怎么做:`dioxus-router`、嵌套路由、`Outlet` 和页面组织,一篇给你讲顺
前端·rust·前端框架
用户987409238873 小时前
用 Remotion + edge-tts 打造中文教学视频全自动流水线
前端
风骏时光牛马3 小时前
Less前端工程化实战:变量混合器与项目样式分层落地
前端
假如让我当三天老蒯3 小时前
Options API(选项式 API) 和 Composition API(组合式 API)
前端·vue.js·面试
SameX3 小时前
iOS 独立开发实践:用 MapKit + 像素渲染实现 Citywalk 轨迹地图 App「雁过留痕」
前端
_柳青杨3 小时前
一文吃透 Node.js 事件循环:从原理到 Node 20+ 重大变更
javascript·后端
skyey3 小时前
页面加载时,深色模式闪白的问题解决
前端
IT_陈寒3 小时前
Java 并行流把我坑惨了,这6小时加班值了
前端·人工智能·后端