前言

在前端生涯上,经常会遇到需要容器自适应视口高度这种情况,本文将介绍我能想到的解决这个问题的方案。

基础知识

html元素的高度默认是auto(被内容自动撑开),宽度默认是100%(等于浏览器可视区域宽度),没有margin和padding;

body元素的高度默认是auto,宽度默认是100%,有margin而没有padding;

若想让一个块元素(如div)的高度与屏幕高度自适应,始终充满屏幕,需要从html层开始层层添加height=100%,而又因为html,body元素的width默认就是100%,因此在里面的div 设定width=100%时就能和屏幕等宽。

方法一:继承父元素高度

给html、body标签添加css属性height=100%,然后在需要撑满高度的容器添加css属性height=100%,如下:

html{

height:100%;//让html的高度等于屏幕

}

body{

height:100%;

margin:0;

}

.example{

width: 100%;

height:100%;

background:rgb(55, 137, 243);

}

注意:添加类名.example的元素必须是块级元素而且需要是body的直接子元素,也就是要设置height=100%,其父元素必须有高度

方法二:使用绝对定位(absolute)

给需要撑满的容器添加绝对定位(absolute),然后设置top、left、right、bottom分别为0,如下:

.example{

position: absolute;

top:0;

left:0;

bottom:0;

right:0;

background:rgb(55, 137, 243);

}

注意:若目标元素的父级元素没有设置过相对定位(relative)或绝对定位(absolute),那么目标元素将相对于html定位,html不需要设置宽高;否则相对于其设置过相对定位(relative)或绝对定位(absolute)的父级元素定位,且其父级元素必须有宽度和高度,如下:

.example2{

position: relative;

width:100%;

height:100px;

}

.example{

position: absolute;

top:0;

left:0;

bottom:0;

right:0;

background:rgb(55, 137, 243);

}

方法三:使用固定定位(fixed)

给需要撑满的容器添加绝对定位(absolute),然后设置top、left、right、bottom分别为0,如下:

.example{

position: fixed;

top:0;

left:0;

bottom:0;

right:0;

background:rgb(55, 137, 243);

}

注意:使用fixed后,不需要理会父级元素是否有定位属性,均能撑满浏览器可视区域,但目标元素不随滚动容器的滚动而滚动

方法四:使用flex布局

给需要撑满的容器的父元素添加display:flex,然后给撑满的元素添加flex:1 1 auto,如下:

html,body{

width:100%;

height:100%;

}

body{

display: flex;

}

.example{

background:#fc1;

flex:1 1 auto;

}

注意:使用flex同样需要父元素的有高度和宽度,否则不会撑开。

方法五:使用javascript获取浏览器高度

let example = document.getElementById('example')

let height = document.documentElement.clientHeight

example.style.height = `${height}px`

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

html视口配置,web容器如何自适应视口大小相关推荐

  1. idea配置web容器与war打包

    前言 idea配置tomcat作为容器的博文很多,我这里也是自己备忘,然后呢.最近也没有啥有意思的东西分享的,就为突破200篇. 一.配置tomcat容器 废话也不多说,我这里是目前最新版本的idea ...

  2. 移动web现状、viewport视口、二倍图、移动web开发主流方案、布局技术选型(流式布局、flex弹性布局、less+rem+媒体查询布局、混合布局、媒体查询、bootstrap)

    移动端web现状: 移动端常见浏览器:UC浏览器,QQ浏览器,Opera浏览器,百度手机浏览器,360安全浏览器,谷歌浏览器,搜狗手机浏览器,猎豹浏览器及杂牌浏览器.移动端常见的浏览器都是基于webk ...

  3. layui框架轮播图实现轮播图片自适应视口缩放

    一点JS也不懂,利用layui现成的框架轮播组件,简单的实现了layui框架轮播图自适应视口而缩放效果. 以下是代码: <section><div class="layui ...

  4. 基于纯Java代码的Spring容器和Web容器零配置的思考和实现(3) - 使用配置

    经过<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(1) - 数据源与事务管理>和<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(2) - ...

  5. 分层架构web容器的配置安全

    转自:http://hi.baidu.com/shineo__o/item/7520d54c24d234c71081da82 /ps:本以为这是一个偶然配置失误造成的问题,但最近几天无聊时测试发现,有 ...

  6. 3dmax高版本转低版本插件_3dmax高版本和低版本中视口配置如何去阴影

    大家好,我是逆水,在作图过程中,我们经常会碰到模型有死黑阴影,这样一方面影响视觉效果,一方面浪费系统资源.那么怎么关掉阴影避免模型重叠,今天我们就来为大家分享一下. 首先我们打开视口中的+号键,点击配 ...

  7. SpringBoot深入(一)--SpringBoot内置web容器及配置

    版权声明:作者原创,转载请注明出处. 本系列文章目录地址:http://blog.csdn.net/u011961421/article/details/79416510 前言 在学会基本运用Spri ...

  8. 移动端布局三种视口_移动H5的meta视口标签、弹性布局原则和背景图片适配

    很多小伙伴对viewport的理解不是很透彻,于是这一篇重点聊聊viewport(视图)的知识点.以帮助大家更加容易理解移动端H5页面的适配方案. 解读移动H5适配最重要的html标签:meta视口标 ...

  9. 将打包好的VUE文件部署到Web容器(Nginx)中,解决接口调用跨域问题

    目录 背景 下载并解压Nginx 部署dist到Nginx中 启动Nginx 背景 VUE项目开发(如何搭建VUE开发环境请参见:如何搭建VUE开发环境_chanbzou1981的博客-CSDN博客) ...

最新文章

  1. 区块链+数字经济发展白皮书,45页pdf
  2. 网络流三·二分图多重匹配 HihoCoder - 1393
  3. 09--MySQL自学教程:多表查询之内连接、外连接以及【子查询】
  4. 洛谷 P3368 【模板】树状数组 2
  5. 西安电子科技大学第16届程序设计竞赛 E题
  6. java indexof_Java Vector indexOf()方法与示例
  7. 所见即搜,3分钟教你搭建一个服装搜索系统!
  8. Python中的特殊方法、属性和迭代器
  9. Linux下编译安装redis,详细教程
  10. android studio接口在哪设置,Android定位SDK
  11. 奥运门票系统down机的技术问题
  12. QuickTime不支持播放HEVC编码mp4/mov视频
  13. 团队作业7——Alpha冲刺之事后诸葛亮
  14. 1.(python)阿拉伯数字转中文大写
  15. 吕布机器人评测_实情使用曝光:腾讯态客王者荣耀吕布机器人音箱怎么样?好用吗?使用七周体验分享...
  16. 自编码器(autoencoder)了解一下
  17. svn分支开发与主干合并(branch merge)
  18. Linux系统发展历史
  19. 中国内地摇滚歌手及代表作
  20. WIN10 + Ubuntu 16.04 双系统安装教程

热门文章

  1. 如何用PLSQL连接服务器的Oracle数据库
  2. python中的异常处理(小白必看的史上最全异常处理总结!)【上篇】
  3. JavaSE——基础知识回顾14之集合(下半部分Map)
  4. 微众银行笔试--java开发
  5. vue3中如何去请求数据
  6. 『网络协议攻防实验』TCP会话劫持攻击
  7. flashplayer_10_ax_debug10.2.exe 安装错误。您尝试安装的adobeflasplayer不是最新版本
  8. 5月12日在西安感受汶川地震震感
  9. 新手学习制作次世代 3D 游戏角色很难么?
  10. Python统计文件字母出现次数(字典形式返回结果)