移動端flex布局高度自適應問題解決


今天重寫了一個移動端的頁面,改完后才發現頁面中間需要自適應高度,傳統的獲取高度設置方法並不能實現頁面想要的效果,便對原有頁面樣式進行了一下研究,發現原有頁面是用flex布局實現自適應,於是照搬寫法,卻始終無法向原有頁面一樣自適應高度,但寫法都是一樣的,最后仔細將頁面的結構性元素的樣式嘗試修改了一邊,才發現原因:flex做自適應時,html和body需要先設置為100%,否則下面的子元素無法獲取到高度。具體看代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        html,body{
            height: 100%;
        }
        *{
            margin: 0;
            padding: 0;
        }
        .wap{
            display: flex;
            flex-direction:column;
            height: 100%;
        }
        .item1{
            background: red;
        }
        .item2{
            background: green;
        }
        .item3{
            flex: 1;
            -webkit-box-flex: 1;
            background: blue;
            overflow-y: auto;
        }
        .item4{
            height: 50px;
            width: 100%;
            background: chartreuse;
        }
    </style>
</head>
<body>
        <div class="wap" >  
            <div class="item1"></div>
            <div class="item2">
                <div>
                    <input type="text" placeholder="1111">
                </div>
            </div>
            <div class="item3">
            </div>
            <div class="item4"></div>
        </div>
    
</body>
</html>

  實現效果如下:(將綠色部分內容刪除后,中間藍色部分會自動填充到上面去)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM