web容器如何自适应视口大小
前言
在前端生涯上,经常会遇到需要容器自适应视口高度这种情况,本文将介绍我能想到的解决这个问题的方案。
基础知识
html元素的高度默认是auto(被内容自动撑开),宽度默认是100%(等于浏览器可视区域宽度),没有marg和paddg;
body元素的高度默认是auto,宽度默认是100%,有marg而没有paddg;
若想让一个块元素(如div)的高度与屏幕高度自适应,始终充满屏幕,需要从html层开始层层添加height=100%,而又因为html,body元素的width默认就是100%,在里面的div 设定width=100%时就能和屏幕等宽。
方法一继承父元素高度
给html、body标签添加css属性height=100%,然后在需要撑满高度的容器添加css属性height=100%,如下
<html> <body> <div class="example"> </div> </body> <html> html{ height:100%;//让html的高度等于屏幕 } body{ height:100%; marg:0; } .example{ width: 100%; height:100%; background:rgb(55, 137, 243); }
注意添加类名.example的元素必须是块级元素而且需要是body的直接子元素,也就是要设置height=100%,其父元素必须有高度
方法二使用绝对定位(absolute)
给需要撑满的容器添加绝对定位(absolute),然后设置、left、right、bottom分别为0,如下
<html> <body> <div class="example"> </div> </body> <html> .example{ position: absolute; :0; left:0; bottom:0; right:0; background:rgb(55, 137, 243); }
注意若目标元素的父级元素没有设置过相对定位(relative)或绝对定位(absolute),那么目标元素将相对于html定位,html不需要设置宽高;否则相对于其设置过相对定位(relative)或绝对定位(absolute)的父级元素定位,且其父级元素必须有宽度和高度,如下
<html> <body> <div class="example2"> <span class="example"></span> </div> </body> <html> .example2{ position: relative; width:100%; height:100px; } .example{ position: absolute; :0; left:0; bottom:0; right:0; background:rgb(55, 137, 243); }
方法三使用固定定位(fixed)
给需要撑满的容器添加绝对定位(absolute),然后设置、left、right、bottom分别为0,如下
<html> <body> <div class="example"> </div> </body> <html> .example{ position: fixed; :0; left:0; bottom:0; right:0; background:rgb(55, 137, 243); }
注意使用fixed后,不需要理会父级元素是否有定位属性,均能撑满浏览器可视区域,但目标元素不随滚动容器的滚动而滚动
方法四使用flex布局
给需要撑满的容器的父元素添加displayflex,然后给撑满的元素添加flex1 1 auto,如下
<html> <body> <div class="example"> </div> </body> <html> html,body{ width:100%; height:100%; } body{ display: flex; } .example{ background:#fc1; flex:1 1 auto; }
注意使用flex同样需要父元素的有高度和宽度,否则不会撑开。
方法五使用javascript获取浏览器高度
<html> <body> <div class="example"> </div> </body> <html> <script> let example = document.getElementById('example') let height = document.documentElement.clientHeight example.style.height = `${height}px` </script>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
网站设计
- 静宁会SEO的网站建设公司:全面提升您的网络影
- 提升在线业务的关键:选择最佳的丽水网站建设
- 浙江网站优化发展潜力如何
- 井研专业的网站建设公司:打造您的在线品牌
- 灵山SEO网站建设公司:提升您的在线业务表现
- 蒙城网站建设优化公司:提升您网站表现的理想
- 阳谷企业网站优化:提升线上业务力的关键
- 樟树专业的网站建设公司:打造您在线业务的坚
- 通河百度SEO排名的策略与技巧
- 重庆百度快照排名如何进行精准的客户引流
- 重庆百度快照排名
- 常宁便宜的建站公司:助您轻松打造在线业务
- 巫溪百度网站优化:提升网站曝光率与流量的关
- 湖北整站优化怎么做才能放大客户需求
- 闸北网站建设多少钱?全面解析与预算规划
- 辽宁企业网站优化怎么做电话营销