2013-01-31 11 views
15

Pracuję nad tym website i chcę, aby prawy pasek boczny miał 100% wysokości.CSS div 100% wysokość

body { 
    height: 100%; 
    min-height: 100%; 
    position: relative; 
} 

mydiv { 
    height: 100%; 
    min-height: 100%; 
    position: absolute; 
    top: 0; 
    right: 0; 
    bottom: 0; 
    width: 290px; 
} 

Czytałem wiele odpowiedzi, szczególnie ten (Prestaul odpowiedź): Setting 100% height on an absolutely positioned element when the content expands past the window size.

Ale dla mnie ta sztuczka nie działa, także przykładowa skrzypaczka nie działa!

This is the jsfiddle working example.

This is the same code that doesn't work.

+0

Czy myśli pan parę pikseli białe na górze? Ustaw margines twojego ciała na "0" i powinno działać. – hsan

Odpowiedz

5

spróbuj ustawić styl ciała do:

body { position:relative;} 

pracował dla mnie

+0

Zrobiłem już to, jak można przeczytać, http://aquilewp.webkolm.com/grafica/prova.html tutaj można zobaczyć przykład jsfiddle umieszczony na mojej stronie internetowej ... i to nie działa – T1T

+1

Przeciwnie, ustawiłeś styl ciała na 'body {height: 100%; min-height: 100%; position: relative;} 'Sugeruję, że powinieneś ustawić go na' body {position: relative;} ' –

+0

wielkie dzięki! TO DZIAŁA!! – T1T

37

Ustaw znacznik HTML, zbyt. W ten sposób nie są wymagane żadne dziwne sztuczki pozycyjne.

html, body {height: 100%}

+0

Zastanawiam się, dlaczego nie jest to wybrana odpowiedź? Ustawienie pozycji ciała na "względną" nie jest jednak dobrą praktyką, jednak .. !! –

1

mam inną propozycję. Gdy chcesz myDiv mieć wysokość 100%, korzystać z tych dodatkowych 3 atrybuty na div:

myDiv { 
    min-height: 100%; 
    overflow-y: hidden; 
    position: relative; 
} 

To powinno załatwić sprawę!

1

schematu flexbox rozwiązanie

Uwaga: Dodaj flex prefiksy dostawców, jeśli wymagane przez supported browsers.

html { 
 
    height: 100%; 
 
} 
 

 
body { 
 
    height: 100%; 
 
    display: flex; 
 
} 
 

 
.Content { 
 
    flex-grow: 1; 
 
} 
 

 
.Sidebar { 
 
    width: 290px; 
 
    flex-shrink: 0; 
 
}
<div class="Content" style="background:#bed">Content</div> 
 
<div class="Sidebar" style="background:#8cc">Sidebar</div>

Powiązane problemy