• <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適配問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對本站網站的支持!



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

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 亚洲日韩看片无码电影| 亚洲另类精品xxxx人妖| 爱情岛论坛免费视频| 在线观看免费污视频| 亚洲av无码成人影院一区| 国产精品免费视频网站| 久久亚洲中文无码咪咪爱| 免费看少妇作爱视频| 黄色毛片免费网站| 国产乱辈通伦影片在线播放亚洲| 一级毛片免费在线观看网站| 亚洲色婷婷一区二区三区| 国产成人免费ā片在线观看老同学 | 99在线精品免费视频九九视| 亚洲人成日本在线观看| 嫩草视频在线免费观看| 曰批免费视频播放免费| 国产亚洲精品成人a v小说| 国产午夜精品久久久久免费视 | 国产亚洲精午夜久久久久久| 两个人的视频www免费| 亚洲国产香蕉碰碰人人| 99热在线精品免费全部my| 久久精品亚洲日本波多野结衣| 亚洲精品国产va在线观看蜜芽| 中文字幕乱码免费视频| 亚洲中文字幕久久久一区| 免费中文字幕在线观看| 最好免费观看高清在线| 亚洲av专区无码观看精品天堂 | 黄色a级片免费看| 精品国产亚洲一区二区在线观看 | 亚洲性在线看高清h片| 久久久久久一品道精品免费看| 亚洲精品123区在线观看| 19禁啪啪无遮挡免费网站| 亚洲精品无码aⅴ中文字幕蜜桃| 亚洲熟伦熟女新五十路熟妇| 99精品国产成人a∨免费看| 亚洲精品成a人在线观看☆| 亚洲成A人片777777|