位置: IT常识 - 正文

css 100vw、100vh出现滚动条怎么解决

编辑:rootadmin
css 100vw、100vh出现滚动条怎么解决

推荐整理分享css 100vw、100vh出现滚动条怎么解决,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

要搞清楚这个问题首先要知道这两个单位(vw、vh)是什么意思。vw(vh)是相对于浏览器的视口宽度(高度)的,100vh等于浏览器的视口宽度,设置vw和vh会在视口发生变化时重新计算宽度和高度。

那么问题来了,什么是浏览器的视口,来看下面一张图:

上面这张图中,红色线条框起来的区域才是浏览器的视口,不是整个浏览器可视区域,也不是这个绿色背景覆盖的区域。

css 100vw、100vh出现滚动条怎么解决

知道这些以后,我们给一个盒子设置100vw和100vh应该是让这个盒子刚好覆盖浏览器视口。那么为什么会出现横向和纵向的滚动条呢?

上面这张图的代码如下:

<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> .box { width: 100vw; height: 100vh; background: green; } </style> </head> <body> <div class="box"></div> </body></html>

在代码中,我们给body中的一个class为box的盒子设置了宽度100vw,高度100vh,背景颜色green。我们会注意到,这个绿色背景与视口顶端和左端都有一定白色间隙。这个间隙是由于浏览器给body增加默认样式造成的,我们可以通过开发者工具面板看到这些浏览器样式,如下图:

可见浏览器给body设置了一个8px的外边距。

由于这个外边距的存在,而我们的盒子的高度是整个视口的高度,所以body的宽高会被绿色盒子撑开,从而导致视口无法完整显示body元素。

对于浏览器来说,有任何一个元素无法在视口内显示,浏览器就会自动加滚动条,这种滚动条(区别于由于设置了overflow:scroll出现的滚动条)永远出现在紧贴着视口的右侧或下侧,同时这种滚动条也是视口的一部分。 所以一开始视口无论横向和纵向都无法完整显示body元素,导致了出现了横向和纵向滚动条。 在不改变这个绿色盒子已有的这两个属性的情况下消除滚动条有如下方式,

第一种解决方案是将body的上下左右外边距都设置为0。(注意如果有body有任何一个方向的外边距不为0,都会可能导致横向和纵向都出现滚动条,这是因为横向的滚动条的出现会使视口的高度变高,纵向滚动条的出现使得视口宽度变宽。)第二种解决方案是给绿色盒子设置max-width:100%使得横向滚动条消失。第三种解决方案是给body元素设置溢出隐藏(overflow:hidden)第四种解决方案是给html元素设置溢出隐藏overflow:hidden)

第三和第四种方案会导致一部分内容无法显示,随着可视区域变化,被隐藏的部分也会变化。

关于overflow补充一下细节:overflow是一个速写属性,包含overflow-x,overflow-y,所有元素的overflow值默认都是visible(可见)。其值可以取得scroll(出现滚动条)、hidden(隐藏溢出的部分)。在视口能正常显示所有元素的情况下,给body或html元素设置overflow:scroll会出现无法滑动的横向和纵向滚动条。  

本文链接地址:https://www.jiuchutong.com/zhishi/295302.html 转载请保留说明!

上一篇:浏览器window.open()用法,以及利用其实现拦截弹出式窗口(浏览器windows下载)

下一篇:Java利用fastjson解析复杂嵌套json字符串、json数组;json字符串转Java对象,json数组转list数组(fastjson 解析)

  • 收到政府土地补偿,用于种植农作物
  • 哪些进项税额可以转出
  • 坏账准备贷方核算内容
  • 银行理财收益算错兑付怎么办
  • 原材料盘亏会计分录怎么做
  • 固定资产怎么确认是不是投入使用了
  • 产品入库实际成本是什么凭证
  • 以固定资产换入固定资产
  • 盘亏材料10000元,可以回收的保险赔偿
  • 车辆商业险和交强险可以分开买吗
  • 企业月奖金发放制度
  • 跨月负数发票会计分录
  • 高新技术企业如何融资
  • 消费税的纳税环节可能有
  • 多发工资还给老板是傻吗
  • 消耗性生物资产的账务处理
  • 公账转私账备注借款
  • 以前工程发票如何抵扣
  • configureandwatch
  • Win7系统Syswow64文件夹是什么及能否删除的相关内
  • 微信占用空间大是怎么回事
  • 留存收益在哪里可以查到
  • cpu风扇应该怎么调
  • 收取个人挂靠的管理费用要交税吗?
  • 劳动法律法规包含哪些
  • 所得税时间性差异与永久性有关吗
  • 营改增开始时间
  • 税务局要求小规模纳税人开专票
  • vue使用jquery
  • 未分配利润为负的原因
  • 公司账户的钱怎么少了
  • vue 实战
  • netbeans ide 8.1
  • 目标检测tricks
  • react脚手架搭建项目
  • php入门实例
  • 错误凭证如何修改?所有的错误的凭证都能修改吗?
  • 美团平台技术部是干什么的
  • vue+ele
  • 分公司民事责任由谁承担
  • 公司贷款可以转私户吗
  • sqlldr并发
  • 一般纳税人企业所得税税率多少
  • 电子产品对外加工
  • 物业公司支出费用
  • 在建工程抵押贷款的用途为在建工程继续建造所需资金
  • 销售方会计分录
  • 有限公司结业清算
  • 申报财产租赁合同怎么写
  • 付给农民的土地使用费
  • 结算本月职工工资,其中生产甲产品
  • 民办非企业没有了吗
  • 外帐和内帐区别
  • sql server导出
  • 如何把数据导入mysql中
  • mysql批量执行sql文件工具
  • linux rpm包怎么安装
  • mysql join查询慢
  • 使用组策略可控制什么
  • freebsd怎么安装软件
  • 在u盘安装软件插上就能用
  • ubuntu 14.04安装
  • Linux下which、whereis、locate、find 区别
  • rrpcsb.exe - rrpcsb是什么进程 有什么用
  • 苹果发布新机老款能降多少
  • win8资源管理器未响应
  • js按位运算符
  • unity的脚本
  • node.js怎么搭建服务器
  • Node.js中的包管理工具是什么
  • unity服务器端
  • unity游戏开发常用技术
  • jquery事件的响应
  • bash shell 语法
  • jquery的方法有哪些
  • js打印命令
  • javascript面向对象编程
  • python快速排序最简单写法
  • 广西电子税务局电话人工客服电话
  • 瑞士州税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设