DEMOWzględne dopełnienie i jednostki vh - błąd lub spekulacje?
Czasami tworzę kwadrat (lub dowolny prostokąt, naprawdę), że będą respektować jego stosunek w dowolnym rozmiarze stosując metodę podobną do this method.
Czego chcę:
- aby zapobiec plac rozciągający się poza rzutni na urządzeniach z małą wysokość czyli telefon komórkowy w krajobrazie
Proponowane rozwiązanie
- szerokość ograniczenia kwadratu do pe rcentage wysokości rzutni przy użyciu współczynnika
max-width: 90vh
- oczekiwać, aby być przestrzegane
CSS
.square {
position: relative;
height: 0;
padding-bottom: 100%;
overflow: hidden;
}
.square-inner {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
.mw { max-width: 90vh;} /* solution, but makes things break */
HTML
<div class="square mw">
<div class="square-inner"></div>
</div>
Co powinno się zdarzyć
- w rzutniach z małych wysokościach, na placu powinna być max szerokość 90% wysokości rzutni
Co właściwie się dzieje:
- gdy rzutnia wysokość jest mniej niż szerokość kwadratu:
- szerokość jest ograniczona zgodnie z
vh
Wartość - wysokość obliczana jest od szerokości placu gdyby nie zostały ograniczone do
vh
- otrzymujemy pionowo długi prostokąt
- szerokość jest ograniczona zgodnie z
The spec mówi, że względna wartość obliczana jest z " zawierający blok ", co wydaje mi się, że powinna to być obecna szerokość kontenera.
Przeglądarka zachowanie:
- Chrome 29.0.1547.65: jak opisano
- Firefoksa 23.01: jak opisano
Opera: nie przestrzega VH wcaleNie zatwierdzono z Opera 16+
jestem interpretacji spec nieprawidłowo, lub jest to możliwe błąd w realizacji przez producentów przeglądarek?
proszę pisać rzeczywisty kod (najlepiej w [SSCCEE] (http://sscce.org)) w pytaniu. Pytania nie powinny zależeć od zasobów zewnętrznych, aby były czytelne/odpowiedzialne. –