2013-05-26 11 views

Odpowiedz

4

Elementy tracą swój element flex status, jeśli są ustawione absolutnie. W tym celu co ty sugerujesz, należy bezwzględnie umieścić elastycznego pojemnika:

http://codepen.io/cimmanon/pen/prFdm

.foo { 
    display: -webkit-box; 
    display: -ms-flexbox; 
    display: -webkit-flex; 
    display: flex; 
    -webkit-box-orient: vertical; 
    -webkit-box-direction: normal; 
    -webkit-box-pack: center; 
    -webkit-box-align: center; 
    position: absolute; 
    top: 0; 
    bottom: 0; 
    left: 0; 
    right: 0; 
} 

.bar { 
    margin: auto; 
} 

<div class="foo"> 
    <div class="bar">Bar</div> 
</div> 

Zauważ, że mam pominął schematu flexbox prefiksy moz 2009 ponieważ pozycjonowanie bezwzględne łamie flex kontenerów w Firefoksie . To powinno być po prostu pracować w wersjach Firefox ze standardowymi właściwościami Flexbox.

+0

To faktycznie odpowiada na moje pytanie, ale ... problem z tym rozwiązaniem polega na tym, że kontener obejmuje całą stronę, co oznacza, że ​​wszystkie podstawowe linki przestają działać (nie tylko te leżące u podstaw samej nakładki). Czy znasz sposób, aby tego uniknąć? – Xavi

+0

To ograniczenie bezwzględnego pozycjonowania. Możesz modyfikować indeks Z, ale nie będziesz mógł umieścić .foo pod innymi elementami, zachowując .bar na górze. Bez dokładnego sprawdzenia, jaki efekt przyniesiesz, trudno jest ci doradzić dalej. – cimmanon

+0

Tak, właśnie tego próbowałem, tj. Zmodyfikowałem indeks Z, ale znalazłem to, co właśnie powiedziałeś. Próbuję tost to, jak toasty z Androidem (http://developer.android.com/guide/topics/ui/notifiers/toasts.html), ale chcę wyśrodkować go pionowo na ekranie, i wszelkie ukryte linki, guziki itp., które nie są objęte toastem, powinny pozostać aktywne. – Xavi

3

w moim przypadku był to element absolutny. Przeglądarka: Chrome 56,0 https://codepen.io/MarvinXu/pen/WjprpL

.flexbox { 
 
     display: flex; 
 
     height: 200px; 
 
     align-items: center; 
 
    } 
 
    
 
    .abs { 
 
     position: absolute; 
 
     right: 0; 
 
    }
<div class="flexbox"> 
 
    <span>inline</span><span class="abs">position:absolute</span> 
 
    </div>

+0

nie działa na safari 10.1.2 – ramusus

Powiązane problemy