2013-09-26 13 views
8

Próbuję uzyskać bardzo prosty układ przy użyciu modelu flex działającego na iPadzie.Układ CSS Flexible Box na iPadzie

Posiadam zawierający element div, który ma na celu wyśrodkowanie zawartości div.

Przykładowy kod jest zgodny z zamierzonymi we wszystkich przeglądarkach i platformach, Z WYJĄTKIEM na iPadzie (siatkówce).

Korzystanie z różnych emulatorów iPad online nie spowoduje powtórzenia problemu. Mogłem tylko powielić to na rzeczywistym iPadzie. Oto zrzut ekranu jak to wygląda:

enter image description here

Wszelkie porady będą mile widziane bardzo dużo.

CSS:

.container { 
width: 510px; 
height: 310px; 
background: red; 
display: flex; 
display: -webkit-flexbox; 
display: -ms-flexbox; 
display: -webkit-flex; 
flex-direction: row; 
flex-wrap: wrap; 
-webkit-box-pack: center; 
-moz-box-pack: center; 
-ms-flex-pack: center; 
-webkit-justify-content: center; 
justify-content: center; 
-webkit-flex-align: center; 
-ms-flex-align: center; 
-webkit-align-items: center; 
align-items:center; 
border: 2px solid; 
padding: 5px; 
margin: 0; 
} 

.content { 
float: left; 
width: 150px; 
height: 150px; 
background: green; 
border: 2px solid; 
padding: 0; 
margin: 0; 
} 

.content2 { 
float: left; 
width: 150px; 
height: 150px; 
background: blue; 
border: 2px solid; 
padding: 0; 
margin: 0; 
} 

HTML:

<div class="container"> 
<div class="content"> 
<p>Content</p> 
</div> 
<div class="content2"> 
<p>Content2</p> 
</div> 
</div> 

Odpowiedz

16

Brakuje niektórych właściwości ze starego projektu 2009 (lub ich nazwie źle). Kontener CSS powinien wyglądać następująco:

http://cssdeck.com/labs/ci9imeed

.container { 
    width: 510px; 
    height: 310px; 
    background: red; 
    display: -webkit-box; 
    display: -moz-box; 
    display: -ms-flexbox; 
    display: -webkit-flex; 
    display: flex; 
    -webkit-box-pack: center; 
    -moz-box-pack: center; 
    -ms-flex-pack: center; 
    -webkit-justify-content: center; 
    justify-content: center; 
    -webkit-box-align: center; 
    -moz-box-align: center; 
    -ms-flex-align: center; 
    -webkit-align-items: center; 
    align-items: center; 
    border: 2px solid; 
    padding: 5px; 
    margin: 0; 
} 

jednak pamiętać, że żadna z przeglądarek z realizacji 2009 schematu flexbox (Android, starszy Safari, starszy Firefox) owijania wsparcie.

+1

Dziękuję Cimmanon. Jednakże, patrząc na przykład na iPada, divs zawartości nadal nie są wyśrodkowane ... – MNorup

+0

To floats na elementach potomnych, które są winowajcą. Zgodnie ze specyfikacją float powinien być ignorowany na elementach flex, ale powoduje dziwne rzeczy w implementacji Webkita w 2009 roku. Zamiast tego użyj 'display: inline-block'. – cimmanon

+0

Czy można to wyrównać za pomocą wbudowanego bloku? Właśnie testuję siatkówkę, ipad3 i ipad1. Nie mogę tego dostać ... – MNorup