• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 蘋果教程教程 > 詳細頁面

        有關HTML5頁面在iPhoneX適配問題_html5_頁面制作

        有關HTML5頁面在iPhoneX適配問題_html5_頁面制作

        更新時間:2024-04-08 文章作者:未知 信息來源:網絡 閱讀次數:

        1. iPhoneX的介紹 屏幕尺寸我們熟知的iPhone系列開發尺寸概要如下:△ iPhone各機型的開發尺寸轉化成我們熟知的像素尺寸:△ 每個機型的多維度尺寸倍圖其實就是像素尺寸和開發尺寸的倍...

        ​1.  iPhoneX的介紹
         

        屏幕尺寸

        我們熟知的iPhone系列開發尺寸概要如下:

        有關HTML5頁面在iPhoneX適配問題_html5_網頁制作_本站

        △ iPhone各機型的開發尺寸

        轉化成我們熟知的像素尺寸:

        有關HTML5頁面在iPhoneX適配問題_html5_網頁制作_本站

        △ 每個機型的多維度尺寸

        倍圖其實就是像素尺寸和開發尺寸的倍率關系,但這只是外在的表現。倍圖核心的影響因素在于PPI(DPI),了解屏幕密度與各尺寸的關系有助于我們深度理解倍率的概念:《基礎知識學起來!為設計師量身打造的DPI指南》

        iPhone8在本次升級中,屏幕尺寸和分辨率都遺傳了iPhone6以后的優良傳統;

        然而iPhone X 無論是在屏幕尺寸、分辨率、甚至是形狀上都發生了較大的改變,下面以iPhone 8作為參照物,看看到底iPhone X的適配我們要怎么考慮。

        我們看看iPhone X尺寸上的變化:

        有關HTML5頁面在iPhoneX適配問題_html5_網頁制作_本站

        2. iPhoneX的適配---安全區域(safe area)

        蘋果對于 iPhone X 的設計布局意見如下:

        有關HTML5頁面在iPhoneX適配問題_html5_網頁制作_本站

        核心內容應該處于 Safe area 確保不會被設備圓角(corners),傳感器外殼(sensor housing,齊劉海) 以及底部的 Home Indicator 遮擋。也就是說 我們設計顯示的內容應該盡可能的在安全區域內;

        3. iPhoneX的適配---適配方案viewport-fit 3.1 PhoneX的適配,在iOS 11中采用了viewport-fit的meta標簽作為適配方案;viewport-fit的默認值是auto。

           viewport-fit取值如下:

                                                          auto 默認:viewprot-fit:contain;頁面內容顯示在safe area內
                                                          cover viewport-fit:cover,頁面內容充滿屏幕

           viewport-fit meta標簽設置(cover時)

        <meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">

        3.2 css constant()函數 與safe-area-inset-top &safe-area-inset-left &safe-area-inset-right &safe-area-inset-bottom的介紹

        有關HTML5頁面在iPhoneX適配問題_html5_網頁制作_本站

        如上圖所示 在iOS 11中的WebKit包含了一個新的CSS函數constant(),以及一組四個預定義的常量:safe-area-inset-left,safe-area-inset-right,safe-area-inset-top和safe-area-inset-bottom。當合并一起使用時,允許樣式引用每個方面的安全區域的大小。

        3.1當我們設置viewport-fit:contain,也就是默認的時候時;設置safe-area-inset-left,safe-area-inset-right,safe-area-inset-top和safe-area-inset-bottom等參數時不起作用的。

        3.2當我們設置viewport-fit:cover時:設置如下

        body {
            padding-top: constant(safe-area-inset-top);   //為導航欄+狀態欄的高度 88px            
            padding-left: constant(safe-area-inset-left);   //如果未豎屏時為0                
            padding-right: constant(safe-area-inset-right); //如果未豎屏時為0                
            padding-bottom: constant(safe-area-inset-bottom);//為底下圓弧的高度 34px       
        }

        4. iPhoneX的適配---高度統計

        viewport-fit:cover + 導航欄

          有關HTML5頁面在iPhoneX適配問題_html5_網頁制作_本站

        5.iPhoneX的適配---媒體查詢

        注意這里采用的是690px(safe area高度),不是812px;

        @media only screen and (width: 375px) and (height: 690px){
            body {
                background: blue;
            }
        }

        6.iphoneX viewport-fit

        問題總結

        1.關于iphoneX 頁面使用了漸變色時;如果viewport-fit:cover;

        1.1在設置了背景色單色和漸變色的區別,如果是單色時會填充整個屏幕,如果設置了漸變色 那么只會更加子元素的高度去渲染;而且頁面的高度只有690px高度,上面使用了padding-top:88px;

          有關HTML5頁面在iPhoneX適配問題_html5_網頁制作_本站

        body固定為:

        <body><div class="content">this is subElement</div></body>

        1.單色時:

        * {
                   padding: 0;
                   margin: 0;        
               }        
               body {
                   background:green;
                   padding-top: constant(safe-area-inset-top); //88px            
                   /*padding-left: constant(safe-area-inset-left);*/            
                   /*padding-right: constant(safe-area-inset-right);*/            
                   /*padding-bottom: constant(safe-area-inset-bottom);*/        
               }

        2.漸變色

        * {
                   padding: 0;
                   margin: 0;
               }
               body {
                   background:-webkit-gradient(linear, 0 0, 0 bottom, from(#ffd54f), to(#ffaa22));
                   padding-top: constant(safe-area-inset-top); //88px
                   /*padding-left: constant(safe-area-inset-left);*/
                   /*padding-right: constant(safe-area-inset-right);*/
                   /*padding-bottom: constant(safe-area-inset-bottom);*/
               }

        解決使用漸變色 仍舊填充整個屏幕的方法;CSS設置如下

        有關HTML5頁面在iPhoneX適配問題_html5_網頁制作_本站

        <!DOCTYPE html>
        <html>
        <head>
           <meta name="viewport" content="initial-scale=1, viewport-fit=cover">
           <title>Designing Websites for iPhone X: Respecting the safe areas</title>
           <style>        * {
               padding: 0;
               margin: 0;
           }
           html, body {
               height: 100%;
           }
           body {
               padding-top: constant(safe-area-inset-top);
               padding-left: constant(safe-area-inset-left);
               padding-right: constant(safe-area-inset-right);
               padding-bottom: constant(safe-area-inset-bottom);
           }
           .content {
               background: -webkit-gradient(linear, 0 0, 0 bottom, from(#ffd54f), to(#ffaa22));
               width: 100%;
               height: 724px;
           }    </style>
        </head>
        <body>
        <div class="content">this is subElement</div>
        </body>
        </html>

        2.頁面元素使用了固定定位的適配即:{position:fixed;}

        2.1 子元素頁面固定在底部時;使用viewport-fit:contain時;可以看到bottom:0時只會顯示在安全區域內;

        有關HTML5頁面在iPhoneX適配問題_html5_網頁制作_本站

        <!DOCTYPE html>
        <html>
        <head>
           <meta name="viewport" content="initial-scale=1">
           <!--<meta name="viewport" content="initial-scale=1, viewport-fit=cover">-->
           <title>Designing Websites for iPhone X: Respecting the safe areas</title>
           <style>
               * {
                   padding: 0;
                   margin: 0;
               }
               /*html,body {*/
                   /*height: 100%;*/
               /*}*/
               body {
                   background: grey;
                   /*padding-top: constant(safe-area-inset-top);*/
                   /*padding-left: constant(safe-area-inset-left);*/
                   /*padding-right: constant(safe-area-inset-right);*/
                   /*padding-bottom: constant(safe-area-inset-bottom);*/
               }
               .top {
                   width: 100%;
                   height: 44px;
                   background: purple;
               }
               .bottom {
                   position: fixed;
                   bottom: 0;
                   left: 0;
                   right: 0;
                   height: 44px;
                   color: black;
                   background: green;
               }
           </style>
        </head>
        <body>
           <div class="top">this is top</div>
           <div class="bottom">this is bottom</div>
        </body>
        </html>

        2.1 子元素頁面固定在底部時;使用viewport-fit:cover時;可以看到bottom:0時只會顯示在安全區域內;

        有關HTML5頁面在iPhoneX適配問題_html5_網頁制作_本站

        添加html,body {width:100%;heigth:100%}

        有關HTML5頁面在iPhoneX適配問題_html5_網頁制作_本站

        圖1:

        * {
                   padding: 0;
                   margin: 0;
               }
               html,body {
                   height: 100%;
               }
               body {
                   background: grey;
                   padding-top: constant(safe-area-inset-top);
                   padding-left: constant(safe-area-inset-left);
                   padding-right: constant(safe-area-inset-right);
                   padding-bottom: constant(safe-area-inset-bottom);
               }
               .top {
                   width: 100%;
                   height: 44px;
                   background: purple;
               }
               .bottom {
                   position: fixed;
                   bottom: 0;
                   left: 0;
                   right: 0;
                   height: 44px;
                   color: black;
                   background: green;
               }

        圖2:

        * {
                   padding: 0;
                   margin: 0;
               }
               html,body {
                   height: 100%;
               }
               body {
                   background: grey;
                   padding-top: constant(safe-area-inset-top);
                   padding-left: constant(safe-area-inset-left);
                   padding-right: constant(safe-area-inset-right);
                   /*padding-bottom: constant(safe-area-inset-bottom);*/
               }
               .top {
                   width: 100%;
                   height: 44px;
                   background: purple;
               }
               .bottom {
                   position: fixed;
                   bottom: 0;
                   left: 0;
                   right: 0;
                   height: 44px;
                   color: black;
                   background: green;
               }

        2.3 關于alertView彈框 遮罩層的解決方案

        有關HTML5頁面在iPhoneX適配問題_html5_網頁制作_本站

        <!DOCTYPE html>
        <html lang="en">
        <head>
           <meta charset="UTF-8">
           <!--<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">-->
           <meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
           <meta http-equiv="pragma" content="no-cache">
           <meta http-equiv="cache-control" content="no-cache">
           <meta http-equiv="expires" content="0">
           <title>alertView</title>
           <script data-res="eebbk">
               document.documentElement.style.fontSize = window.screen.width / 7.5 + 'px';
           </script>
           <style>
               * {
                   margin: 0;
                   padding: 0;
               }
               html,body {
                   width: 100%;
                   height: 100%;
               }
               body {
                   font-size: 0.32rem;
                   padding-top: constant(safe-area-inset-top);
                   padding-left: constant(safe-area-inset-left);
                   padding-right: constant(safe-area-inset-right);
                   padding-bottom: constant(safe-area-inset-bottom);
               }
               .content {
                   text-align: center;
               }
               .testBut {
                   margin: 50px auto;
                   width: 100px;
                   height: 44px;
                   border: 1px solid darkgray;
                   outline:none;
                   user-select: none;
                   background-color: yellow;
               }
           </style>
           <link href="alertView.css" rel="stylesheet" type="text/css">
        </head>
        <body>
           <section class="content">
               <button class="testBut" onclick="showLoading()">彈框加載</button>
           </section>
           <script type="text/javascript" src="alertView.js"></script>
           <script>
               function showLoading() {
                   UIAlertView.show({
                       type:"input",
                       title:"溫馨提示",              //標題
                       content:"VIP會員即將到期",     //獲取新的
                       isKnow:false
                   });
                   var xx = new UIAlertView();
                  console.log(xx);
               }
           </script>
        </body>
        </html>

        總結

        以上所述是小編給大家介紹的有關HTML5頁面在iPhoneX適配問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對本站網站的支持!



        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 国产精品亚洲综合| 九九热久久免费视频| 久久亚洲精品成人无码| 一区二区3区免费视频| 99re免费在线视频| 亚洲精品自产拍在线观看动漫| 亚洲欧洲日韩国产一区二区三区| 久久99国产乱子伦精品免费| 亚洲男人第一av网站| 7m凹凸精品分类大全免费| 亚洲国产成人精品无码一区二区| 五月亭亭免费高清在线| 亚洲最大成人网色香蕉| 四虎影院免费视频| 边摸边吃奶边做爽免费视频99| 在线观看免费人成视频色| 亚洲综合图色40p| 亚洲色无码国产精品网站可下载| 叮咚影视在线观看免费完整版| 国产无遮挡吃胸膜奶免费看| 91精品国产亚洲爽啪在线观看| 亚洲电影在线免费观看| 亚洲AV午夜成人片| 国产亚洲精品欧洲在线观看| 亚洲国产精品第一区二区三区| 亚洲另类小说图片| 日本不卡免费新一二三区| 国产精品青草视频免费播放| 国产jizzjizz视频免费看| 久久国产乱子伦精品免费午夜| 亚洲一区二区三区日本久久九| a毛片免费在线观看| JLZZJLZZ亚洲乱熟无码| 久久免费精品视频| 亚洲大尺度无码专区尤物| 光棍天堂免费手机观看在线观看| 亚洲电影在线免费观看| 国产香蕉免费精品视频| 亚洲欧洲精品在线| 又粗又黄又猛又爽大片免费| 亚洲日韩国产一区二区三区在线|