2012-09-25 13 views
7

Ho un problema dopo l'aggiornamento a iOS 6 che mi sta facendo impazzire.Attributo segnaposto su input di testo con iOS 6 da orizzontale a verticale

Sembra che ogni volta che ho l'attributo "placeholder" su un campo di input, mentre si ruota da verticale a orizzontale e di nuovo al ritratto nuovamente la pagina sposta alcuni pixel sul lato sinistro causando una barra orizzontale.

Ho concluso dopo una lunga ricerca che deve essere correlato alla meta vista perché ogni volta che utilizzo content = "width = device-width" tutto funziona correttamente.

P.S Sì ho davvero bisogno di avere una larghezza di cento sull'ingresso in modo da avere il design liquido :)

Ecco l'esempio di ricreare il problema. Grazie ...

<html> 
<head> 
    <title>test</title> 
    <meta content="width=device-width, initial-scale=1, maximum-scale=1" name="viewport"/> 
</head> 
<body> 

    <div style="width:100%;background-color:red"> 
     <input id="testInput" placeholder="test" style="width:90%;" /> 
    </div> 
</body> 
</html> 
+0

Mi dolori che ci sono voluti quasi tre giorni per scoprire che il segnaposto è stato il problema che causa questo cambiamento pixel. Questo bug è documentato ovunque sul sito di mele? – Abadaba

+0

Ciao Abadaba, per quanto ne so non è documentato. Ho appena riportato qui per salvare il tempo di alcune persone ... – alexd

risposta

4

Ho trovato questo problema. e risolverlo.

(URL: http://mooki83.tistory.com/2656550 (in coreano))

testURL: http://mooki83.da.to/m/testios6.html

javascript:

/* Optimized PLACEHOLDER for iOS6 - Mooki (http://mooki83.tistory.com) */ 


$(document).ready(function(){ 
    $(window).bind("orientationchange.fm_optimizeInput", fm_optimizeInput); 
}); 

function fm_optimizeInput(){ 
    $("input[placeholder],textarea[placeholder]").each(function(){ 
     var tmpText = $(this).attr("placeholder"); 
     if (tmpText != "") { 
      $(this).attr("placeholder", "").attr("placeholder", tmpText); 
     } 
    }) 
} 
+1

piacerebbe vedere una correzione non-js – Abadaba

+0

Questa è una risposta valida. Grazie per quello. – alexd

3

fix CSS:

body>div { 
    overflow-y: auto; 
} 
5

Applicando "overflow: hidden;" sull'elemento contenitore ho risolto questo problema per me.

0

risposta non js

Aggiungi overflow:hidden al elemento principale e funzionerà come un fascino

Problemi correlati