2012-04-13 10 views
9

Więc po przeczytaniu przepełnienie stosu i w internecie, I zostały zebrane, że istnieją dwa główne sztuczki do osiągnięcia 100% wysokość:Ustawianie wysokości 100% na absolutnie elementu pozycjonowanego gdy zawartość rozszerza obok rozmiaru okna

    wysokość
  1. Set: 100% zarówno w HTML i ciało
  2. Ustaw element, aby mieć albo:
    • height: 100% lub
    • top: 0, dolny: 0 position: absolute

Jednak nawet przy tych trikach mam trudności z ustawieniem wysokości absolutnie pozycjonowanego DIV na prawdziwe 100%. Mogę uzyskać 100% rozmiaru widocznego obszaru, ale jeśli użytkownik przewinie w dół, staje się oczywiste, że div naprawdę nie ma 100% wysokości.

Zrobiłem prosty JS Fiddle sytuacji tutaj: http://jsfiddle.net/9FEne/

Moje pytanie brzmi: czy ktoś wie żadnych dodatkowych sztuczek, aby uzyskać prawdziwe (tzn. Content-wysokość, nie rzutni-height) 100 % wysokości bezwzględnie ustawione div?

+2

'position: relative'? 'top: 0; bottom: 0' miałoby efekt * no * na względnie pozycjonowanym elemencie. – animuson

+0

@Interstellar_Coder, nie, to by nie ... :) – Prestaul

+0

No cóż, może to podejście miało używać pozycji: absolutna. Po prostu znam tę pozycję: absolutnie nie działa dla mnie, ale widziałem to na szczycie: 0/dół: technika 0 gdzieś ... – machineghost

Odpowiedz

11

Niestety, brakowało mi prawdziwe pytanie przed i że chcesz okno wypełnione. Jeśli problem polega na tym, że zawartość jest dłuższa niż okno, musisz dodać do ciała position:relative. http://jsfiddle.net/9FEne/7/

To, co się dzieje, to to, że kiedy całkowicie pozycjonujesz coś, pozycjonuje (i rozmiary) względem najbliższego pozycjonowanego elementu. Jeśli nie powiesz mu, aby umieścić ciało, wtedy ustawi się w oknie.

+0

To naprawdę nie działa, jeśli nie ma zbyt mało treści do wypełnienia ekranu. Możesz również dodać 'height: 100%;' na elementach 'body' i' html'. –

6

Można użyć jQuery aby osiągnąć ten trick

var h = $(window).height(); 
$('#yourdiv').height(h); 
+1

To jest pytanie css, a nie javascript. – Prestaul

+6

Zapytałeś, czy istnieją "jakiekolwiek dalsze sztuczki". javascript może dać proste rozwiązanie tego problemu. –

+0

Powiem to samo, co powiedziałem do OnResolve: To jest wystarczająco jasne, ale nie jest to trudne do rozwiązania za pomocą css i dodanie javascript do miksu wprowadza inne problemy ... E.g. co się stanie, gdy użytkownik zmieni rozmiar przeglądarki? – Prestaul

4

użyłbym JavaScript przypisać wysokość i szerokość równą wysokości i szerokości dokumentu okna odpowiednio; Mam zmodyfikowany jsfiddle aby wykazać tutaj:

http://jsfiddle.net/9FEne/1/

+0

To jest pytanie css, a nie pytanie javascript ... – Prestaul

+1

Właściwie, jeśli czytasz jego pytanie, nic nie wskazuje na to, że jego rozwiązanie musi być css- tylko. W rzeczywistości wygląda na to, że jest wyczerpany css i wciąż potrzebuje pożądanego rezultatu. Nie wiem, dlaczego inne rozwiązanie jest warte -1 ... wydaje się, że najlepiej byłoby mieć wszystkie przedstawione opcje, nie? – OnResolve

+0

To jest wystarczająco jasne, ale nie jest to trudne do rozwiązania za pomocą css, a dodanie javascript do miksu wprowadza inne problemy ... E.g. co się stanie, gdy użytkownik zmieni rozmiar przeglądarki? – Prestaul