高度在 IOS (iphone) 上无法正常工作

Posted

技术标签:

【中文标题】高度在 IOS (iphone) 上无法正常工作【英文标题】:Height doesn't properly work on IOS (iphone) 【发布时间】:2018-04-30 06:08:01 【问题描述】:

我在 codepen 上创建了 this 网站。在尝试使其对所有平台都做出响应时,我遇到了问题。似乎单个 div 覆盖了整个页面(仅在 ios 上),并且并非所有高度都正常工作(意味着什么都不适合)。

我已经搞了好几天了,仍然不知道为什么所有的高度和规则都不适用于IOS。

我已经尝试删除 video-section,它显示了页面的大部分内容,除了 eind 部分,它只是一个空白。

我已尝试添加 max-height,它确实显示了其他一些内容,但似乎页面在 IOS 上无法变得更高,所以我仍然受限于可以使用的空间.而且这似乎不是一个合适的解决方案。

我尝试更改position,但无济于事。

似乎高度在 IOS 上无法正常工作

谁能帮我弄清楚为什么会这样?

var $animation_elements = $('.animation-element');
var $window = $(window);

function check_if_in_view() 
  var window_height = $window.height();
  var window_top_position = $window.scrollTop();
  var window_bottom_position = (window_top_position + window_height);

  $.each($animation_elements, function() 
    var $element = $(this);
    var element_height = $element.outerHeight();
    var element_top_position = $element.offset().top;
    var element_bottom_position = (element_top_position + element_height);

    //check to see if this current container is within viewport
    if ((element_bottom_position >= window_top_position) &&
      (element_top_position <= window_bottom_position)) 
      $element.addClass('in-view');
     else 
      $element.removeClass('in-view');
    
  );


$window.on('scroll resize', check_if_in_view);
$window.trigger('scroll');

var controller = new ScrollMagic();

	var ctrl = new ScrollMagic.Controller(
	    globalSceneOptions: 
	        triggerHook: 'onLeave'
	    
	);

//Enter section-1
new ScrollMagic.Scene(
  triggerElement: "#coming-soon",
  duration: "100%"
)
  .setTween(TweenMax.to("#image-1", 1,  top: "0%" ))
  .addTo(ctrl);

new ScrollMagic.Scene(
  triggerElement: "#coming-soon",
  duration: "100%"
)
  .setTween(TweenMax.to(".sign-up-banner", 1,  top: "0%" ))
  .addTo(ctrl);

new ScrollMagic.Scene(
  triggerElement: "#coming-soon",
  duration: "100%"
)
  .setTween(TweenMax.to("#text-1", 1,  top: "0%" ))
  .addTo(ctrl);

//Leave section-1

new ScrollMagic.Scene(
  triggerElement: "#introductie-1",
  duration: "100%"
)
  .setTween(TweenMax.to("#image-1", 1,  top: "40%", opacity:-1 ))
  .addTo(ctrl);

new ScrollMagic.Scene(
  triggerElement: "#introductie-1",
  duration: "100%"
)
  .setTween(TweenMax.to("#text-1", 1,  top: "-50%", opacity:0 ))
  .addTo(ctrl);

//leave seaction-2

new ScrollMagic.Scene(
  triggerElement: "#introductie-2",
  duration: "100%"
)
  .setTween(TweenMax.to("#image-2", 1,  top: "-40%", opacity:0 ))
  .addTo(ctrl);

new ScrollMagic.Scene(
  triggerElement: "#introductie-2",
  duration: "100%"
)
  .setTween(TweenMax.to("#text-2", 1,  top: "-50%", opacity:0 ))
  .addTo(ctrl);

new ScrollMagic.Scene(
  triggerElement: "#introductie-2",
  duration: "100%"
)
  .setTween(TweenMax.to("#release", 1, opacity:1 ))
  .addTo(ctrl);
@import url("https://fonts.googleapis.com/css?family=Raleway:200");
* 
  font-family: "Raleway", sans-serif;
  font-size: 14px;
  font-weight: 100 !important;


input 
  -webkit-appearance: none;


html,
body,
section 
  padding: 0px;
  margin: 0px;
  height: 100%;
  width: 100%;
  color: #666;


p,
h1,
h2,
h3,
h4 
  margin: 0px;


ul 
  list-style-type: none;


ul li 
  display: inline-block;
  margin: 50px 25px;


ul li .fa 
  font-size: 5em;
  transition: all 1s ease;


a:link 
  text-decoration: none;


a:visited 
  text-decoration: none;


a:hover 
  text-decoration: none;


a:active 
  text-decoration: none;


a 
  color: #666;


.desktop-only 
  display: initial;


.align-center 
  position: absolute !important;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);


.mobile-only 
  display: none;


.icon 
  background-color: antiquewhite;
  border-radius: 50%;
  width: 150px;
  height: 150px;
  margin: 20px auto;


.fa-icon 
  font-size: 5em !important;
  padding: 40px;


.nederland-icon 
  width: 40%;
  padding: 40px;


#mc_embed_signup form 
  position: absolute !important;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  /* (x, y)  => position */
  -ms-transform: translate(-50%, -50%);
  /* IE 9 */
  -webkit-transform: translate(-50%, -50%);
  /* Chrome, Safari, Opera */
  padding-left: 0px !important;


.sign-up-banner 
  z-index: 2;
  position: relative;
  top: -50%;
  color: white;
  height: 50%;
  background-color: #f3c17e;


.sign-up-banner input::placeholder 
  color: white;


.sign-up-banner #mc_embed_signup .mc-field-group input 
  border-bottom: 2px solid #ffffff !important;


.sign-up-banner #mc_embed_signup 
  background: #fff0;


.sign-up-banner #mc_embed_signup .mc-field-group input 
  background-color: #ffffff00;
  color: white;


.sign-up-banner #mc_embed_signup #mc-embedded-subscribe-form div.mce_inline_error 
  background-color: rgba(255, 255, 255, 0);


.video-section 
  z-index: 3;
  overflow: hidden;
  position: relative;
  top: 0px;
  background-color: black;
  max-height: 100%;
  max-height: 100vh;


.video-section video 
  width: 100%;


#coming-soon 
  display: table;
  position: absolute;
  height: 100%;
  width: 100%;
  top: 0px;
  color: white !important;
  z-index: 3;
  max-height: 100%;
  max-height: 100vh;


.coming-soon h1 
  font-size: 52px;


.introductie 
  position: relative;
  z-index: 1;


#introductie-1 
  height: 100%;


#introductie-1 #image-1 
  overflow: hidden;
  width: 25%;
  margin: 90px auto;
  max-height: 70%;


#introductie-1 .text-container 
  width: 500px;
  margin: 180px auto;
  color: #666;


#introductie-1 .text-container h1 
  font-size: 2em;
  margin-bottom: 40px;


#introductie-1 .text-container p 
  font-size: 1.4em;


#introductie-2 
  height: 100%;


#introductie-2 h1 
  font-size: 2em;
  margin-bottom: 40px;


#introductie-2 p 
  font-size: 1.4em;


#introductie-2 .text-container 
  width: 60%;
  text-align: center;
  margin: 0 auto;


#introductie-2 #text-2 
  position: relative;


#introductie-2 #image-2 
  overflow: hidden;
  width: 60%;
  margin: 90px auto;
  position: relative;


#introductie-2 #image-2 img 
  width: 100%;


.left,
.right 
  width: 50%;


.left 
  float: left;


.right 
  float: right;


#image-1 
  position: absolute;
  top: -70%;
  left: 10%;


#text-1 
  top: 40%;
  right: 10%;
  position: absolute;


.center-container 
  display: table-cell;
  vertical-align: middle;


.center 
  margin-left: auto;
  margin-right: auto;
  width: 80%;


.center-text 
  text-align: center;
  overflow: hidden;


#eind 
  position: relative;


#release 
  opacity: 0;


#disclaimer 
  position: relative;
  left: 48%;
  bottom: 10px;


.fa-facebook:hover 
  color: #3b5998;


.fa-instagram:hover 
  color: #fbad50;


#eind ul 
  padding: 0px;


#eind p 
  margin-bottom: 100px;


.button 
  background-color: #faebd7 !important;
  color: #666 !important;


#mc_embed_signup 
  width: 40%;
  margin: 0 auto;


#mc_embed_signup .mc-field-group input 
  border: 0px !important;
  border-radius: 0px !important;
  border-bottom: 2px solid #666666 !important;


#mc_embed_signup #mc-embedded-subscribe-form input.mce_inline_error 
  border: 0px !important;
  border-radius: 0px !important;
  border-bottom: 2px solid #e85c41 !important;


#mc_embed_signup_scroll 
  text-align: center;


textarea:focus,
input:focus 
  outline: none;


#mc_embed_signup h2 
  margin-bottom: 10% !important;


.clear 
  width: 150px;
  margin: 0 auto;
  margin-top: 5%;


.clear #mc-embedded-subscribe 
  border-radius: 0px !important;
  width: 150px !important;
  margin: 0 auto !important;
  height: 50px !important;


/*animation element*/

.animation-element 
  position: relative;


/*bounce up animation for the subject*/

.bounce-up 
  opacity: 0;
  -moz-transition: all 700ms ease-out;
  -webkit-transition: all 700ms ease-out;
  -o-transition: all 700ms ease-out;
  transition: all 700ms ease-out;
  -moz-transform: translate3d(0px, 200px, 0px);
  -webkit-transform: translate3d(0px, 200px, 0px);
  -o-transform: translate(0px, 200px);
  -ms-transform: translate(0px, 200px);
  transform: translate3d(0px, 200, 0px);
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  backface-visibility: hidden;


.bounce-up.in-view 
  opacity: 1;
  -moz-transform: translate3d(0px, 0px, 0px);
  -webkit-transform: translate3d(0px, 0px, 0px);
  -o-transform: translate(0px, 0px);
  -ms-transform: translate(0px, 0px);
  transform: translate3d(0px, 0px, 0px);


@media (max-width: 1440px) 
  #disclaimer 
    position: relative;
    left: 48%;
    bottom: 10px;
  


@media (max-width: 1024px) 
  #image-1 img 
    position: relative;
    left: -244px;
  


@media (max-width: 768px) 
  .video 
    margin-top: 30%;
  
  #introductie-1 .text-container 
    width: 280px;
  
  #image-1-container #image-1 
    width: 35%;
  
  #mc_embed_signup 
    width: 60%;
  


@media (max-width: 430px) 
  .sign-up-banner 
    position: sticky;
    top: 0px !important;
    max-height: 325px;
  
  .desktop-only 
    display: none;
  
  #disclaimer 
    left: 42%;
  
  .mobile-only 
    display: inherit;
  
  .coming-soon h1 
    font-size: 45px;
  
  .sign-up-banner 
    height: 60%;
  
  #introductie-1 
    height: 250%;
  
  #introductie-2 
    max-height: 500px;
    height: 200%;
  
  #release 
    opacity: 1;
  
  .left,
  .right 
    width: 100%;
  
  #introduction-1-container 
    height: 100%;
  
  #introductie-1 #image-1 
    display: none;
  
  #introductie-2 #image-2 
    display: none;
  
  #introductie-2 .text-container 
    width: 80%;
    text-align: center;
    margin: 0 auto;
  
  #introductie-1 .text-container 
    position: initial;
    width: 80%;
    margin: 0 auto;
    text-align: center;
    margin-top: 40px;
  
  #coming-soon h1 
    font-size: 24px;
  
  #introductie-1 .text-container p 
    font-size: 1.2em;
  
  #introductie-2 p 
    font-size: 1.2em;
  
  .video 
    margin-top: 60%;
  
  .social-media ul 
    padding: 0px;
  
  #mc_embed_signup 
    width: 100%;
    margin: 0 auto;
  
  #text-1 
    opacity: 1 !important;
  
  #text-2 
    position: initial !important;
    opacity: 1 !important;
  
  #eind 
    height: 120%;
    max-height: 1000px;
  
  .eind-block 
    position: relative;
  
  .fa-balance-scale 
    padding: 40px 34px;
  


@media (max-width: 320px) 
  #coming-soon h1 
    font-size: 24px;
  
  #introductie-1 .text-container p 
    font-size: 1.2em;
  
  #introductie-2 p 
    font-size: 1.2em;
  
  .video 
    margin-top: 60%;
  
  .social-media ul 
    padding: 0px;
  
  #mc_embed_signup 
    width: 100%;
    margin: 0 auto;
  
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0" />
  
  <title>Volks</title>
  <link rel="stylesheet" href="styles/index.processed.css">
  <script src="https://use.fontawesome.com/39f17a3ca2.js"></script>

</head>
<body>
  <section class="video-section">
   <div class="video">
    <video loop autoplay id="video-background" muted playsinline>
      <source src="http://rapio.nl/videos/teaser.mp4" type="video/mp4">
    </video>
   </div>
  </section> 

  <section id="coming-soon">
      <div class="align-center center-text coming-soon">
        <h1 class="">Binnenkort verkrijgbaar.</h1>
      </div>
  </section>
  <section class="sign-up-banner">


        <!-- Begin MailChimp Signup Form -->
        <link href="//cdn-images.mailchimp.com/embedcode/classic-10_7.css" rel="stylesheet" type="text/css">
        <style type="text/css">
          #mc_embed_signup 
            background: #fff;
            clear: left;
            font: 14px Helvetica, Arial, sans-serif;
          
          /* Add your own MailChimp form style overrides in your site stylesheet or in this style block.
          	   We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
        </style>
        <div id="mc_embed_signup">
          <form action="https://volksphone.us17.list-manage.com/subscribe/post?u=e0b25e148103e039f3ed554d1&amp;id=bbad48d887" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
            <div id="mc_embed_signup_scroll">
              <h2>Ontvang een notificatie bij de bekendmaking van onze crowdfundings-campagne.</h2>
              <div class="mc-field-group">
                <input type="email" placeholder="Emailadres" name="EMAIL" class="required email" id="mce-EMAIL">
              </div>
              <div class="response" id="mce-error-response" style="display:none"></div>
              <div class="response" id="mce-success-response" style="display:none"></div>
            </div>
            <div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_e0b25e148103e039f3ed554d1_bbad48d887" tabindex="-1" value=""></div>
            <div class="clear"><input type="submit" value="verzend" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
        </form>
      </div>
      <script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script>
      <script type='text/javascript'>
        (function($) 
          window.fnames = new Array();
          window.ftypes = new Array();
          fnames[0] = "EMAIL";
          ftypes[0] = "email";
          fnames[1] = "FNAME";
          ftypes[1] = "text";
          fnames[2] = "LNAME";
          ftypes[2] = "text";
          fnames[3] = "BIRTHDAY";
          ftypes[3] = "birthday";
        )(jQuery);
        var $mcj = jQuery.noConflict(true);
      </script>
      <!--End mc_embed_signup-->
    

  </section>
  <section class="introductie" id="introductie-1">
    <div class="container" id="introduction-1-container">
      <div class="left" id="image-1-container">
        <div class="image-container " id="image-1">
          <img src="media/image-1.jpg">
        </div>
      </div>
      <div class="right">
        <div class="text-container" id="text-1">
          <div class="icon  mobile-only"><img class="nederland-icon" src="media/nederland_icoon.png"></div>
          <h1>Van Nederlandse Bodem</h1>
          <p>Volks is een Amsterdamse startup achter de eerste Nederlandse high-end smartphone. Maak kennis met onze technologie, je zult verrast zijn.</p><br><br>
          <div class="icon  mobile-only"><i class="fa fa-balance-scale mobile-only fa-icon" aria-hidden="true"></i></div>
                <h1>Balans tussen prijs en kwaliteit</h1>
          <p class="mobile-only">Wanneer had je voor het laatst een smartphone in je handen? Precies, nu.</p><p>Wanneer had je voor het laatst een smartphone in je handen? Precies, nu.</p><p>Er is een overvloed aan smartphones. Helaas betaal je nog steeds de hoogste prijs, of iets minder maar ontbreekt goede ondersteuning en kwaliteit. Volks wilt een balans bieden tussen een eerlijke prijs, goede customer support en topkwaliteit.  
</p><br><br>
      <div class="icon mobile-only"><i class="fa fa-users fa-icon" aria-hidden="true"></i></div>
      <h1 class=" mobile-only">En nu voor iedereen</h1>
      <p class=" mobile-only">Het is bijna zover. Binnenkort start de crowdfunding-campagne en hier hebben we jouw hulp hard bij nodig. Tijdens deze campagne kom je in de gelegenheid een pre-order te plaatsen. Slechts een gelimiteerd aantal Volks toestellen zijn beschikbaar tijdens de voorverkoop. 
</p>
        </div>
      </div>
    </div>
  </section>
  <section class="introdcutie desktop-only" id="introductie-2">
    <div class="text-container" id="text-2">
      <div class="icon mobile-only"><i class="fa fa-users fa-icon" aria-hidden="true"></i></div>
      <h1>En nu voor iedereen</h1>
      <p>Het is bijna zover. Binnenkort start de crowdfunding-campagne en hier hebben we jouw hulp hard bij nodig. Tijdens deze campagne kom je in de gelegenheid een pre-order te plaatsen. Slechts een gelimiteerd aantal Volks toestellen zijn beschikbaar tijdens de voorverkoop. 
</p>
    </div>
    <div class="image-container " id="image-2">
      <img src="media/image-2.png">
    </div>

    
  </section>
  <section id="eind">
      <div class="align-center center-text coming-soon eind-block">
        <p>Meer info over de datum en technische specificaties volgt binnenkort op onze Facebookpagina.</p>
        <h1 class="">Volks<i class="fa fa-copyright" aria-hidden="true" style="font-size:15px;"></i> <br> December 2017</h1>
        <div class="social-media">
          <ul>
            <li>
              <a href=""><i class="fa fa-facebook" aria-hidden="true"></i></a>
            </li>
            <li>
              <a href=""><i class="fa fa-instagram" aria-hidden="true"></i></a>
            </li>
          </ul>
        </div>
    </div>
  </section>
  <a id="disclaimer" href="disclaimer.html">disclaimer</a>
  <!-- ==== scripts ==== -->
  <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
  <script src='https://cdnjs.cloudflare.com/ajax/libs/gsap/1.16.0/TweenMax.min.js'></script>
  <script src='https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.3/ScrollMagic.js'></script>
  <script src='https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.3/plugins/animation.gsap.min.js'></script>
  <script src='https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.2/plugins/debug.addIndicators.min.js'></script>
  <!-- ==== CUSTOM JS ==== -->
  <script src="scripts/index.js"></script>
</body>
</html>

【问题讨论】:

你是如何在 iphone 上测试的?你检查过chrome sim吗?如果您不知道发生了什么,那您为什么认为身高是问题所在? @Huangism 我在 Iphone 上的 chrome 和 safari 上运行它。我认为这是一个身高问题。因为黑屏是一个section的高度 【参考方案1】:

我找到了答案。

这是一个自动查找窗口的height 并将该高度设置为给定类的 JS 脚本。

但是,这并不是全部的解决方案。当我将height:100%; 应用于 html、body 和 section 时,高度比以前更好了。

我对每个手机尺寸的max-height 进行了媒体查询,因此它超出了预期的部分。

https://90c726a539a841eb97f1b7b3f2aaf646.codepen.website

JS解决方案是:

// On document ready set the div height to window
$(document).ready(function() 

    // Assign a variable for the application being used
    var nVer = navigator.appVersion;
    // Assign a variable for the device being used
    var nAgt = navigator.userAgent;
    var nameOffset,verOffset,ix;


    // First check to see if the platform is an iPhone or iPod
    if(navigator.platform == 'iPhone' || navigator.platform == 'iPod')
        // In Safari, the true version is after "Safari" 
        if ((verOffset=nAgt.indexOf('Safari'))!=-1) 
          // Set a variable to use later
          var mobileSafari = 'Safari';
        
    

  //===== FULL HEIGHT =====\\

    // If is mobile Safari set window height +60
    if (mobileSafari == 'Safari')  
        // Height + 60px
        $('.full-height').css('height',(($(window).height()) + 60)+'px');
     else 
        // Else use the default window height
        $('.full-height').css('height':(($(window).height()))+'px');  
    ;


);

// On window resize run through the sizing again
$(window).resize(function()
    // If is mobile Safari set window height +60
    if (mobileSafari == 'Safari')  
        // Height + 60px
        $('.full-height').css('height',(($(window).height()) + 60)+'px');
     else 
        // Else use the default window height
        $('.full-height').css('height':(($(window).height()))+'px');  
    ;

 /* //===== HALF HEIGHT =====\\

    // If is mobile Safari set window height +60
    if (mobileSafari == 'Safari')  
        // Height + 60px
        $('.half-height').css('min-height',(($(window).height() /2) + 60)+'px'/2);
     else 
        // Else use the default window height
        $('.half-height').css('min-height':(($(window).height()/2)  )+'px');  
    ;

// On window resize run through the sizing again
$(window).resize(function()
    // If is mobile Safari set window height +60
    if (mobileSafari == 'Safari')  
        // Height + 60px
        $('.half-height').css('min-height',(($(window).height()/ 2)  + 60)+'px');
     else 
        // Else use the default window height
        $('.half-height').css('min-height':(($(window).height()/ 2) )+'px');  
    ;
);

  //===== DOUBLE HEIGHT =====\\

    // If is mobile Safari set window height +60
    if (mobileSafari == 'Safari')  
        // Height + 60px
        $('.half-height').css('min-height',(($(window).height()* 2)  + 60)+'px');
     else 
        // Else use the default window height
        $('.half-height').css('min-height':(($(window).height()* 2)  )+'px'); 
    ;


);

// On window resize run through the sizing again
$(window).resize(function()
    // If is mobile Safari set window height +60
    if (mobileSafari == 'Safari')  
        // Height + 60px
        $('.half-height').css('min-height',(($(window).height()* 2)  + 60)+'px');
     else 
        // Else use the default window height
        $('.half-height').css('min-height':(($(window).height()* 2) )+'px');  
    ;*/
);

而CSS(used SCSS)解决方案是:

//IPHONE&SAMSUNG PLUS
@media (max-height: 736px) 
  .full-height
    max-height:736px;
  
  .introductie-mobile 
  height: 1200px !important;
  max-height: 1200px;
  

//IPHONE 6/7/8
@media (max-height: 667px) 
  .full-height
    max-height:667px;
  
  .introductie-mobile 
    height: 1200px !important;
    max-height: 1200px;
  


//IPHONE %
@media (max-height: 568px) 
  .full-height
    max-height:568px;
  
  .introductie-mobile 
    height: 1200px !important;
    max-height: 1200px;
  

【讨论】:

【参考方案2】:

这不是 IOS 的问题,而是响应能力的问题。您已为每个部分设置了固定高度,因此它在移动设备上相互重叠。

只需将所有section 高度设置为height: 100vh

@media (max-width: 430px)
    .introductie 
    height: 300vh;
    overflow: hidden;


它应该可以工作。

【讨论】:

您是否检查过在 ios 设备上将部分的高度更改为 100vh 时会发生什么?所有其他部分都会消失。尝试将前 2 个部分设置为 50vh 看看会发生什么。 现在我亲自测试它,它适用于给定的更新代码,请尝试让我知道它是否不适合你。 这不适用于 iOs safari,它不支持 100vh。【参考方案3】:

顶部黑色&lt;div class="video-section"&gt; 的高度在任何 设备(包括iPhone)上是全高。所以身高本身不是问题。

但是,在其他设备上,下一个 &lt;div class="sign-up-banner"&gt; 的位置会动态变化,以便在您向下滚动时以视差效果移动。一旦您完全超过顶部黑色&lt;div class="video-section"&gt;,整个第二个&lt;div class="sign-up-banner"&gt; 将完全可见。这是通过javascript 代码完成的。不管出于什么原因,这个javascript 没有在 iPhone 上运行。

&lt;div id="coming-soon"&gt; 中应用于&lt;form&gt; 的一些CSS 仍然被应用,这让你的div 卡在第一个后面。

您可以使用以下 css 反转它:

.sign-up-banner
    position: static;
    height: auto;


#mc_embed_signup form
    position: static !important;
    -ms-transform: none; /* IE 9 */
    -webkit-transform: none; /* Chrome, Safari, Opera */
    transform: none; 

您可以将其包装在媒体查询中,使其仅适用于特定屏幕。让它申请iPhone。

@media only screen 
  and (min-device-width: 320px) 
  and (max-device-width: 568px)
  and (-webkit-min-device-pixel-ratio: 2) 
    //insert your css here

这会将 CSS 应用到 iPhone 4 和 4s。不能保证不适用于其他设备,但css 不能针对特定设备,所以这是我们所拥有的最好的。您可以在https://css-tricks.com/snippets/css/media-queries-for-standard-devices/ 看到针对其他设备(包括其他 iPhone 型号)的媒体查询。

【讨论】:

感谢 James 的回复,css-tricks 链接真的很有帮助。我已经尝试过你的建议,但不幸的是它没有奏效。我很确定 IOS 存在高度问题,因为一个部分覆盖了整个页面(在 Iphone 7 上测试)在不同的 Iphone 上可能会有所不同。 @Notorious_Creed 很高兴我至少可以提供一些帮助。我在浏览器中设置了该 CSS,同时在 iPhone simulator 中查看您的代码笔,它解决了问题。我不能确定它是否适用于其他 iPhone。您应该确保在添加 CSS 时它实际上会覆盖以前的 CSS,然后再放弃它。也许您可以将!important 应用于所有内容作为测试。我不确定您所说的“高度问题,因为一个部分覆盖了整个页面”是什么意思,因为黑色手机视频覆盖了任何设备上的整个屏幕。

以上是关于高度在 IOS (iphone) 上无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

jPlayer 在 iOS iPhone 上无法正常工作

iOS 6/iPhone 5 上的 UIGlassButton 无法正常工作 [关闭]

Ionic iPhone X 安全区域无法正常工作

iOS安全区域无法在真实设备上运行

iPhone iOS8:从 iOS7.1 sdk 构建并在 8.0 及更高版本的设备上运行时,UIAlertView 倒置旋转无法正常工作

iOS系统“隔空投送”功能无法正常使用的解决办法!