摘要:前言在前端生涯上,經(jīng)常會遇到需要容器自適應(yīng)視口高度這種情況,本文將介紹我能想到的解決這個問題的方案。方法五使用獲取瀏覽器高度
前言
在前端生涯上,經(jīng)常會遇到需要容器自適應(yīng)視口高度這種情況,本文將介紹我能想到的解決這個問題的方案。基礎(chǔ)知識
html元素的高度默認(rèn)是auto(被內(nèi)容自動撐開),寬度默認(rèn)是100%(等于瀏覽器可視區(qū)域?qū)挾龋瑳]有margin和padding;
body元素的高度默認(rèn)是auto,寬度默認(rèn)是100%,有margin而沒有padding;
若想讓一個塊元素(如div)的高度與屏幕高度自適應(yīng),始終充滿屏幕,需要從html層開始層層添加height=100%,而又因為html,body元素的width默認(rèn)就是100%,因此在里面的div 設(shè)定width=100%時就能和屏幕等寬。
方法一:繼承父元素高度給html、body標(biāo)簽添加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的直接子元素,也就是要設(shè)置height=100%,其父元素必須有高度
方法二:使用絕對定位(absolute)給需要撐滿的容器添加絕對定位(absolute),然后設(shè)置top、left、right、bottom分別為0,如下:
.example{ position: absolute; top:0; left:0; bottom:0; right:0; background:rgb(55, 137, 243); }
注意:若目標(biāo)元素的父級元素沒有設(shè)置過相對定位(relative)或絕對定位(absolute),那么目標(biāo)元素將相對于html定位,html不需要設(shè)置寬高;否則相對于其設(shè)置過相對定位(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),然后設(shè)置top、left、right、bottom分別為0,如下:
.example{ position: fixed; top:0; left:0; bottom:0; right:0; background:rgb(55, 137, 243); }
注意:使用fixed后,不需要理會父級元素是否有定位屬性,均能撐滿瀏覽器可視區(qū)域,但目標(biāo)元素不隨滾動容器的滾動而滾動
方法四:使用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獲取瀏覽器高度文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/109493.html
摘要:前言在前端生涯上,經(jīng)常會遇到需要容器自適應(yīng)視口高度這種情況,本文將介紹我能想到的解決這個問題的方案。方法五使用獲取瀏覽器高度 前言 在前端生涯上,經(jīng)常會遇到需要容器自適應(yīng)視口高度這種情況,本文將介紹我能想到的解決這個問題的方案。 基礎(chǔ)知識 html元素的高度默認(rèn)是auto(被內(nèi)容自動撐開),寬度默認(rèn)是100%(等于瀏覽器可視區(qū)域?qū)挾龋?,沒有margin和padding; body元素的...
摘要:還有視口相關(guān)單位,依賴瀏覽器的視口大小來定義長度的。如果你不熟悉視口相關(guān)單位的話,在這里簡單介紹一下。筆記視口相關(guān)單位對于大多數(shù)瀏覽器還是一項比較新的特性,所以當(dāng)你試圖把這個特性和其他樣式混搭時,有可能會有一些很奇怪的。 前段時間試譯了Keith J.Grant的CSS好書《CSS in Depth》,其中的第二章《Working with relative units》,書中對rel...
摘要:本文主要介紹一些響應(yīng)式布局容易忽略但又很重要的知識點。單位不僅僅可以用來設(shè)置字號,還可以設(shè)置任何盒模型的屬性,比如有一點優(yōu)勢就是可以和媒體查詢配合,實現(xiàn)響應(yīng)式布局運用場景如果我們做的頁面只在移動端訪問,這是因為不兼容低版本的瀏覽器。 一、前言 響應(yīng)式Web設(shè)計可以讓一個網(wǎng)站同時適配多種設(shè)備和多個屏幕,可以讓網(wǎng)站的布局和功能隨用戶的使用環(huán)境(屏幕大小、輸入方式、設(shè)備/瀏覽器能力)而變化。...
閱讀 3679·2021-11-24 09:39
閱讀 1288·2021-09-30 09:48
閱讀 3276·2021-09-09 11:51
閱讀 2900·2021-09-08 10:41
閱讀 1340·2019-08-30 14:06
閱讀 2809·2019-08-30 14:01
閱讀 884·2019-08-29 17:11
閱讀 3183·2019-08-29 15:37