摘要:前言在前端生涯上,经常会遇到需要容器自适应视口高度这种情况,本文将介绍我能想到的解决这个问题的方案。方法五使用获取浏览器高度
前言
在前端生涯上,经常会遇到需要容器自适应视口高度这种情况,本文将介绍我能想到的解决这个问题的方案。基础知识
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获取浏览器高度文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/114648.html
摘要:前言在前端生涯上,经常会遇到需要容器自适应视口高度这种情况,本文将介绍我能想到的解决这个问题的方案。方法五使用获取浏览器高度 前言 在前端生涯上,经常会遇到需要容器自适应视口高度这种情况,本文将介绍我能想到的解决这个问题的方案。 基础知识 html元素的高度默认是auto(被内容自动撑开),宽度默认是100%(等于浏览器可视区域宽度),没有margin和padding; body元素的...
摘要:还有视口相关单位,依赖浏览器的视口大小来定义长度的。如果你不熟悉视口相关单位的话,在这里简单介绍一下。笔记视口相关单位对于大多数浏览器还是一项比较新的特性,所以当你试图把这个特性和其他样式混搭时,有可能会有一些很奇怪的。 前段时间试译了Keith J.Grant的CSS好书《CSS in Depth》,其中的第二章《Working with relative units》,书中对rel...
摘要:本文主要介绍一些响应式布局容易忽略但又很重要的知识点。单位不仅仅可以用来设置字号,还可以设置任何盒模型的属性,比如有一点优势就是可以和媒体查询配合,实现响应式布局运用场景如果我们做的页面只在移动端访问,这是因为不兼容低版本的浏览器。 一、前言 响应式Web设计可以让一个网站同时适配多种设备和多个屏幕,可以让网站的布局和功能随用户的使用环境(屏幕大小、输入方式、设备/浏览器能力)而变化。...
阅读 3450·2019-08-30 10:54
阅读 3146·2019-08-29 16:38
阅读 2163·2019-08-26 14:06
阅读 1511·2019-08-23 15:39
阅读 3033·2019-08-23 15:37
阅读 2882·2019-08-23 13:50
阅读 3188·2019-08-22 17:14
阅读 2373·2019-08-22 15:44