当<input />有占位符文本时,方向更改ios6 Safari错误

时间:2012-10-01 09:48:23

标签: html5 ios6 placeholder orientation-changes

我在移动safari iOS6上有一个错误,只有布局在方向更改时向左移动 - 从纵向到横向和背面。

只有在占位符属性中有内容时才会出现该错误,如果删除占位符属性的内容,则方向更改不会出现错误。我在http://beta.9eggs.com/ios6.html设置了一个演示,您可以在其中切换输入占位符的内容并添加删除错误。

我已经看到了修复布局问题的解决方案,但是想了解占位符导致问题并解决问题的原因 - 而不是包含布局。

2 个答案:

答案 0 :(得分:13)

尝试在overflow: hidden;的父元素上设置input,它对我有效。

答案 1 :(得分:2)

This related question引导我找到适合我的解决方案。它归结为这个通用的kludge:

if ( /iPhone/.test(navigator.userAgent) &&
     !/Opera Mini/.test(navigator.userAgent) )
{
  window.addEventListener("orientationchange", function(e){
    /*
      // Method A:
      var s = document.documentElement.style;
      s.display = 'none';
      setTimeout(function(){ s.display = 'block'; }, 0);
    */
      // Method B:
      var d = document.documentElement;
      setTimeout(function(d){ d.className = d.className; }, 0);
    });
}

希望这有帮助。