Jaki jest najlepszy sposób na utworzenie elementu o minimalnej wysokości 100% w wielu przeglądarkach?
W szczególności, jeśli masz układ ze stałymi a header
i ,footer
height
jak sprawić, by środkowa część wypełniała 100%
przestrzeń pomiędzy footer
przymocowaną do dna?
min-height: 100vh;
. Powoduje to ustawienie wysokości równej lub większej od wielkości ekranuvh: vertical height
. Więcej: w3schools.com/cssref/css_units.asp .vh
oznaczaviewport height
więc można również użyćvw
doviewport width
ivmin
na dowolny wymiar jest najmniejsza,viewport minimum
.Odpowiedzi:
Używam następującego: Układ CSS - 100% wysokości
U mnie działa dobrze.
źródło
Aby ustawić niestandardową wysokość zablokowaną gdzieś:
źródło
Oto inne rozwiązanie oparte na
vh
lubviewpoint height
, aby uzyskać szczegółowe informacje, odwiedź jednostki CSS . Opiera się na tym rozwiązaniu , które zamiast tego wykorzystuje flex.Więcej informacji znajdziesz tutaj:
źródło
Odpowiedź kleolb02 wygląda całkiem nieźle. Innym sposobem byłoby połączenie lepkiej stopki i hacka o minimalnej wysokości
źródło
Aby
min-height
poprawnie pracować z procentami, podczas dziedziczenia węzła nadrzędnegomin-height
, sztuczka polega na ustawieniu wysokości węzła nadrzędnego na,1px
a wtedy dzieckomin-height
będzie działało poprawnie.Strona demonstracyjna
źródło
Czyste
CSS
rozwiązanie (#content { min-height: 100%; }
) zadziała w wielu przypadkach, ale nie we wszystkich - szczególnie w IE6 i IE7.Niestety, będziesz musiał skorzystać z rozwiązania JavaScript, aby uzyskać pożądane zachowanie. Można to zrobić, obliczając żądaną wysokość treści
<div>
i ustawiając ją jako właściwość CSS w funkcji:Następnie możesz ustawić tę funkcję jako procedurę obsługi zdarzeń
onLoad
ionResize
:źródło
Zgadzam się z Levikiem, ponieważ kontener nadrzędny jest ustawiony na 100%, jeśli masz paski boczne i chcesz, aby wypełniały przestrzeń, aby spotkać się ze stopką, nie możesz ich ustawić na 100%, ponieważ będą one również stanowić 100% wysokości nadrzędnej, co oznacza, że stopka zostanie wciśnięta w dół podczas korzystania z funkcji czyszczenia.
Pomyśl o tym w ten sposób, jeśli Twój nagłówek ma wysokość 50 pikseli, a stopka 50 pikseli, a treść jest automatycznie dopasowywana do pozostałej przestrzeni, powiedzmy na przykład 100 pikseli, a kontener strony ma 100% tej wartości, jego wysokość będzie wynosić 200 pikseli. Następnie, gdy ustawisz wysokość paska bocznego na 100%, będzie to 200 pikseli, mimo że powinien on mieścić się między nagłówkiem a stopką. Zamiast tego kończy się na 50 piks. + 200 piks. + 50 piks., Więc strona ma teraz 300 pikseli, ponieważ paski boczne są ustawione na tę samą wysokość co kontener strony. W treści strony będzie duże białe miejsce.
Używam przeglądarki Internet Explorer 9 i właśnie to jest efektem stosowania tej 100% metody. Nie próbowałem tego w innych przeglądarkach i zakładam, że może działać w niektórych innych opcjach. ale nie będzie uniwersalny.
źródło
Najpierw powinieneś utworzyć
div
withid='footer'
po swoimcontent
div, a następnie po prostu zrób to.Twój kod HTML powinien wyglądać następująco:
Oraz CSS:
źródło
Prawdopodobnie najkrótsze rozwiązanie (działa tylko w nowoczesnych przeglądarkach)
Ten mały fragment CSS sprawia, że
"the middle content part fill 100% of the space in between with the footer fixed to the bottom"
:jedynym wymaganiem jest to, że musisz mieć stopkę o stałej wysokości.
Na przykład dla tego układu:
potrzebujesz tego CSS:
źródło
Spróbuj tego:
div
Elementem poniżej zawartości div musi miećclear:both
.źródło
Możesz spróbować: http://www.monkey-business.biz/88/horizontal-zentriertes-100-hohe-css-layout/ To 100% wysokości i poziomego środka.
źródło
po prostu udostępnij to, czego byłem użyty i dobrze działa
źródło
Jak wspomniano w odpowiedzi Afshina Mehrabaniego, należy ustawić treść i wysokość html na 100%, ale aby uzyskać tam stopkę, oblicz wysokość opakowania:
źródło