让高度百分比,height:100% 生效的3种方法

本文详细介绍了如何在CSS中实现全屏布局,包括为元素设置100%高度的三种方法:从根到子节点设置百分比高度,使用JavaScript动态设置高度,以及利用CSS定位属性。这些方法适用于不同的场景,帮助开发者解决常见的网页布局问题。

转载地址:https://blog.youkuaiyun.com/huitoukest/article/details/51375345

核心原理;

height:100%这个概念是子节点相对于父容器而言;所以要让此属性生效,必要的一点就是:父容器必须具有具体的高度信息;

直接在<body>的子节点(如div中)写height:100%是不会生效的,因为此时<body>的高度是不确定的,默认是auto;


方法一

给从根的父容器到子容器的所有容器都设置好百分比高度信息

比如:


 
  1. <!DOCTYPE html>
  2. <html lang="zh-cn" style="height:100%;width:100%;overflow:hidden;">
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=9;IE=8;chrome=1" />
  6. <title>132 </title>
  7. </head>
  8. <body style="height:100%;width:100%;padding:0;margin: 0;">
  9. <div style="height:100%;width:100%;background-color:#787878" >
  10. </div>
  11. </body>
  12. </html>

这样从根的Html开始,到字的div结束,全部都具有百分比高度,这样,就都能够获取到高度信息;


方法二

 给父容器设置具体的高度信息;

比如直接写死在样式中,或者用javascript来设置;

示例,用js使<body>得到高度,从而使其中的div全屏:


 
  1. <!DOCTYPE html>
  2. <html lang="zh-cn">
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=9;IE=8;chrome=1" />
  6. <title>132 </title>
  7. </head>
  8. <body id="body" style="padding:0;margin: 0;">
  9. <div style="height:100%;width:100%;background-color:#787878" >
  10. </div>
  11. </body>
  12. <script type="text/javascript">
  13. var screenHeight= document.documentElement.clientHeight;
  14. var screenWidth= document.documentElement.clientWidth;
  15. var body= document.getElementById( 'body');
  16. body.style.width=screenWidth+ "px";
  17. body.style.height=screenHeight+ "px";
  18. </script>
  19. </html>

方法三

给父容器设置位置信息,让其得到高度信息;

示例,用css使body得到高度,从而使其中的div全屏:


 
  1. <!DOCTYPE html>
  2. <html lang="zh-cn">
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=9;IE=8;chrome=1" />
  6. <title>132 </title>
  7. </head>
  8. <body style="position:absolute;top:0px;left:0px;right:0px;bottom:0px;padding:0;margin: 0;">
  9. <div style="height:100%;width:100%;background-color:#787878" >
  10. </div>
  11. </body>
  12. </html>

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值