国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > CSS > 正文

web容器如何自適應視口大小

2024-07-11 08:42:24
字體:
來源:轉載
供稿:網友

前言

在前端生涯上,經常會遇到需要容器自適應視口高度這種情況,本文將介紹我能想到的解決這個問題的方案。

基礎知識

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>        <body>            <div class="example">            </div>        </body>    <html>    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,如下:

    <html>        <body>            <div class="example">            </div>        </body>    <html>    .example{        position: absolute;        top: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;        top:0;        left:0;        bottom:0;        right:0;        background:rgb(55, 137, 243);    }

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

給需要撐滿的容器添加絕對定位(absolute),然后設置top、left、right、bottom分別為0,如下:

    <html>        <body>            <div class="example">            </div>        </body>    <html>    .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>            <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>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 四川省| 定边县| 准格尔旗| 苍溪县| 新沂市| 莱芜市| 姚安县| 宣威市| 黔江区| 金塔县| 广饶县| 资兴市| 修武县| 涟源市| 黎城县| 阿图什市| 增城市| 清河县| 镇坪县| 无为县| 崇礼县| 舟山市| 金塔县| 塔河县| 玉环县| 句容市| 云安县| 禄丰县| 小金县| 平昌县| 滨州市| 平原县| 长阳| 若尔盖县| 竹山县| 陈巴尔虎旗| 潞城市| 沂南县| 福清市| 明水县| 忻州市|