2012-06-11 11 views
43

Mam nagłówek (wysokość dynamiczna) ze stałą pozycją.ustalona pozycja nagłówka w html

Potrzebuję umieścić pojemnik div tuż pod nagłówkiem. Ponieważ wysokość nagłówka jest dynamiczna, nie mogę użyć stałej wartości dla górnego marginesu.

Jak można tego dokonać?

Oto mój CSS:

#header-wrap { 
    position: fixed; 
    height: auto; 
    width: 100%; 
    z-index: 100 
} 
#container{ 
    /*Need to write css to start this div below the fixed header without mentioning top margin/paading*/ 
} 

... i HTML:

<div id="header-wrap"> 
    <div id="header"> 
    <div id="menu"> 
     <ul> 
     <li><a href="#" class="active">test 0</a></li> 
     <li><a href="#">Give Me <br />test</a></li> 
     <li><a href="#">My <br />test 2</a></li> 
     <li><a href="#">test 4</a></li> 
     </ul> 
    </div> 
    <div class="clear"> 
    </div> 
    </div> 
</div><!-- End of header --> 

<div id="container"> 
</div> 
+5

Stały nagłówek nie jest częścią układu. Jest pływający. Musisz nadać zawartość "margin-top", aby działała tak, jakby był tam nagłówek. – Blender

+3

przeczytaj ten http://css-tricks.com/absolute-relative-fixed-positioining-how-do-they-differ/ – sandeep

+0

Możliwy duplikat [tylko z przewijaną tabelą CSS ze stałymi nagłówkami] (http: // stackoverflow. com/questions/11891065/css-only-scrollable-table-with-fixed-headers) –

Odpowiedz

6

dobrze! Gdy zobaczyłem teraz moje pytanie, zdałem sobie sprawę, że nie chcę wspominać o stałej wartości marginesu z powodu dynamicznej wysokości nagłówka.

Oto, czego używałem do takich scenariuszy.

Obliczyć wysokość nagłówka za pomocą jQuery i zastosować jako najwyższy margines.

var divHeight = $('#header-wrap').height(); 
$('#container').css('margin-top', divHeight+'px'); 

Demo

53

Twój #container definiuje powinny być poza # header-oblewania, następnie określić stałą wysokość dla # header- wrap, after, podaj margin-top dla #container równą wysokości # wrap-wrap. Coś takiego:

#header-wrap { 
    position: fixed; 
    height: 200px; 
    top: 0; 
    width: 100%; 
    z-index: 100; 
} 
#container{ 
    margin-top: 200px; 
} 

nadzieję, że to, czego potrzebujesz: http://jsfiddle.net/KTgrS/

+0

Tak, jest poza stroną. ale nie mogę naprawić górnego marginesu, ponieważ zawartość w nagłówku zmienia się dynamicznie ze strony na stronę, gdzie jest mniej treści, wtedy różnica między nagłówkiem a kontenerem będzie większa. – Sowmya

+0

Dodano JsFiddle: http: // jsfiddle.net/KTgrS/ – micnic

+0

czy próbowałeś 'position: absolute'? – poepje

1

I zakładamy, że nagłówek jest stała, ponieważ chcesz, aby zatrzymać się w górnej części strony, nawet gdy użytkownik przewija w dół, ale nie chcesz, żeby zakrywał pojemnik. Ustawienie position: fixed usuwa element z układu liniowego strony, więc musisz ustawić górny margines "następnego" elementu tak, aby był taki sam jak wysokość nagłówka, lub (jeśli z jakiegoś powodu nie jesteś t chcesz to zrobić), umieść element zastępczy, który zajmuje miejsce w przepływie strony, ale pojawi się pod tym, gdzie pojawi się nagłówek.

1

Urządzenie position :fixed różni się od innego układu. Po fixedposition dla swojego header, należy pamiętać, że należy ustawić margin-top dla elementu div .

0

zestaw #container definiuje div top do zerowej

#container{ 


top: 0; 



} 
3
body{ 
    margin:0; 
    padding:0 0 0 0; 
} 
div#header{ 
    position:absolute; 
    top:0; 
    left:0; 
    width:100%; 
    height:25; 
} 
@media screen{ 
body>div#header{ 
    position: fixed; 
} 
} 
* html body{ 
    overflow:hidden; 
} 
* html div#content{ 
    height:100%; 
    overflow:auto; 
} 
+1

Dokumentacja - http://limpid.nl/lab/css/fixed/header – Sorter

Powiązane problemy