CSS | CSS中height:100vh和height:100%的区别

这篇具有很好参考价值的文章主要介绍了CSS | CSS中height:100vh和height:100%的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、对于设置height:100%;有下面几种情况

2、对于设置height:100vh时有如下的情况


CSS | CSS中height:100vh和height:100%的区别

首先,我们得知道1vh它表示的是当前屏幕可见高度的1/100,而1%它表示的是父元素长或者宽的1%

1、对于设置height:100%;有下面几种情况

(1)当父元素固定高度,子元素设置 height:100%;

​<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      #father {
        width: 300px;
        height: 300px;
        background-color: yellow;
        margin: 20px;
      }

      #son {
        height: 100%;
        background-color: blue;
      }
    </style>
  </head>

  <body>
    <div id="father">
      <div id="son"></div>
    </div>
  </body>
</html>

结果如下:

CSS | CSS中height:100vh和height:100%的区别

子元素会自动填充父元素,也就是此时子元素的高度等于父元素的高度,同时我们可以知道,当父元素的宽高为0时,子元素的高度也为0,那么整个图形也就变成下面这个样了

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      #father {
        background-color: yellow;
        margin: 20px;
      }

      #son {
        height: 100%;
        background-color: blue;
      }
    </style>
  </head>
  <body>
    <div id="father">
      <div id="son"></div>
    </div>
  </body>
</html>

结果如下: 

CSS | CSS中height:100vh和height:100%的区别

 (2)当一个元素内部没有子元素的时候,设置height:100%;width:100%;,此时该元素高度为0。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      #father {
        width: 100%;
        height: 100%;
        background-color: yellow;
        margin: 20px;
      }
    </style>
  </head>
  <body>
    <div id="father">
      <!-- <div id="son"></div> -->
    </div>
  </body>
</html>

CSS | CSS中height:100vh和height:100%的区别

 (3)当一个元素内部有固定高度子元素的时候,给这个元素设置height:100%;width:100%;,那么这个元素自动被子元素高度撑开,例如:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      #father {
        width: 100%;
        height: 100%;
        background-color: yellow;
        margin: 20px;
      }

      #son {
        width: 100px;
        height: 100px;
        background-color: blue;
      }
    </style>
  </head>
  <body>
    <div id="father">
      <div id="son"></div>
    </div>
  </body>
</html>

结果如下:

CSS | CSS中height:100vh和height:100%的区别

可以看到,父元素是被子元素撑开了,此时父元素的高度就等于子元素的高度。

2、对于设置height:100vh时有如下的情况

一个元素设置height:100vh,那么该元素会被撑开与屏幕高度一致。

(1)即便父元素限制了宽高,只要子元素设置height:100vh,那么子元素的高度就会和屏幕一样高

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      #father {
        width: 500px;
        height: 200px;
        background-color: yellow;
        margin: 20px;
      }

      #son {
        height: 100vh;
        background-color: blue;
      }
    </style>
  </head>
  <body>
    <div id="father">
      <div id="son"></div>
    </div>
  </body>
</html>

结果如下:

CSS | CSS中height:100vh和height:100%的区别

 可以看到,子元素设置height:100vh时,不会被父元素的高度所限制。height:100vh == height:100%;

(2)父元素设置height:100vh,能够保证元素无论是否有没有内容,高度都等于屏幕高度。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      #father {
        width: 500px;
        height: 100vh;
        background-color: yellow;
        margin: 20px;
      }

      #son {
        height: 300px;
        background-color: blue;
      }
    </style>
  </head>
  <body>
    <div id="father">
      <div id="son"></div>
    </div>
  </body>
</html>

结果如下:

CSS | CSS中height:100vh和height:100%的区别

同样的,width:100%width:100vw的区别差不多,大家可以自行去探索。

📐 扩展:尺寸单位 vh 和 vw

vh 是相对于视窗的高度,那么相对应的 vw 则是相对于视窗的宽度

“视区”所指为浏览器内部的可视区域大小,即window.innerWidth window.innerHeight大小,不包含任务栏标题栏以及底部工具栏的浏览器区域大小。

vh就是当前屏幕可见高度的1%,也就是height:100vh == height:100%,但是有个好处是当元素没有内容时候,设置height:100%该元素不会被撑开,但是设置height:100vh,该元素会被撑开屏幕高度一致。

vw就是当前屏幕宽度的1%,补充一句,当设置width:100%,被设置元素的宽度是按照父元素的宽度来设置,但是100vw是相对于屏幕可见宽度来设置的,所以,会出现50vw 比50%大的情况。


相关参考资料:htm文档中html和body标签的默认尺寸是多少?

CSS | CSS中height:100vh和height:100%的区别文章来源地址https://www.toymoban.com/news/detail-486132.html

到了这里,关于CSS | CSS中height:100vh和height:100%的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 父容器display:flex后,子元素的内部元素height:100%无效的解决方法

         父容器display:flex后,子元素的内部元素height:100%无效解决方法 做项目时遇到这个问题,浅浅的记录一下趴~ 在网上看了很多种方法,感觉这个是最有效的 解救办法:父类容器设置 position:relative;子元素:position:absolute;height:100%;  效果图: 代码:  

    2024年02月06日
    浏览(42)
  • 记录--一行代码修复100vh bug

    你知道奇怪的移动视口错误(也称为100vh bug)吗?或者如何以正确的方式创建全屏块? 什么是移动视口错误? 你是否曾经在网页上创建过全屏元素?只需添加一行 CSS 并不难: 1vh是视口高度的1% ,正是我们所需要的。但当我们在移动设备上测试时,就会出现问题。移动浏览

    2024年02月04日
    浏览(48)
  • 【无标题】 移动端解决高度设为100vh时,页面超出窗口问题

    移动端解决高度设为100vh时,页面超出窗口问题 问题引入 :在做uniapp和微信小程序项目时,在底部或者顶部存在原生tabar和导航栏时,将整个页面最外面的高度设为100vh(目的是想其撑满整个界面),结果因为tabar和导航栏高度的存在,页面设为100vh(百分百高度)过于满了,

    2024年02月15日
    浏览(39)
  • css的font-size属性、line-height属性、height属性

    目录 一,字体框 二、font-size属性 三、line-height属性 四、line-height和font-size的联系         简介:font-size是css中关于字体的样式属性,注意与文本属性text-xxx进行区别。因为文本由一个个字符组成,所以字体属性也会对文本属性造成影响。       字体框是设计字体时,采用

    2023年04月12日
    浏览(54)
  • CSS查缺补漏之常用长度单位(px、em、rem、%、vw/vh、vmin/vmax)

    此文内容较少,轻轻松松掌握,莫要有压力~ 正如现实生活中长度具有mm、dm、cm、m等,在css中,也具备多种长度单位,本文对常用的几种单位进行详细举例介绍~ px:像素单位 初学css时,px单位经常被使用,此处按下不表~  em:表示相对于 当前元素 或 父元素 的font-size的倍数

    2024年02月09日
    浏览(49)
  • CSS基础:你必须要知道的行高属性 line-height

    作者: WangMin 格言: 努力做好自己喜欢的每一件事 对于初学CSS的同学来说,会有很多属性相关的疑问,行高属性 line-height一定是其中一个,因为它是CSS中非常重要的一个属性,这个属性改变元素在网页中的行高,让你的网页看起来更加整洁,美观。 什么是行高? CSS中的行高(

    2024年02月05日
    浏览(56)
  • element-ui设置高度height属性与style属性设置的区别

    在 element-ui 表格中,可以通过 style 属性和 heigh t属性来设置表格的高度。这两种方式的区别如下: 使用 style 属性可以设置表格容器的样式,包括高度、宽度、边框等。例如: 这里将表格容器的高度设置为 300px ,表格的高度是固定的,如果表格内容高度超过了 300px ,不会出

    2024年02月07日
    浏览(51)
  • CSS笔记——font、line-height知识点及图片间隙、文本溢出等解决方案

    font-family(字体族 ):指定字体的名称或类别。可以指定多个字体族,用逗号分隔,浏览器会按照指定的顺序依次寻找可用字体。可取值: 字体名称:如\\\"Arial\\\"、\\\"Times New Roman\\\"等。 通用字体系列:如\\\"serif\\\"、“sans-serif”、\\\"monospace\\\"等。 自定义字体系列:如\\\"myFont, Arial, sans-serif

    2024年02月07日
    浏览(53)
  • 【100%通过率 】租车骑绿岛【华为OD机试 真题 2022 Q4|100分】

    部门组织绿岛骑行团建活动。租用公共双人自行车,每辆自行车最多坐两人,最大载重M。 给出部门每个人的体重,请问最多需要租用多少双人自行车。 第一行两个数字m、n,分别代表自行车限重,部门总人数。 第二行,n个数字,代表每个人的体重,体重都小于等于自行车限

    2023年04月16日
    浏览(73)
  • elementUI tabs切换 echarts宽度挤压到一起 由100%变成100px

    被压缩的图表: 正常显示 1.需求:点击tab切换echarts 2.所用技术:引的vue.js elementUI 切换用的是elementUI中的Tabs标签页 3.遇到了几个问题: 1》报错:[Vue warn]: Error in mounted hook: “TypeError: Cannot read property ‘getAttribute’ of null” 2》点击切换 tabs,导致echarts宽挤到一起,只有100px 3》点

    2024年02月04日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包