Jump to content

Como fixar bem o header?


Go to solution Solved by rumbafum,

Recommended Posts

Posted

Boas pessoal,

Como iniciante...estou a fazer uma página experimental (para treinar) em html5 / CSS3.

Mas não estou a conseguir fazer uma coisa...ou melhor consigo, mas sai extremamente mal...lol.

Gostaria de saber como fixar o header da página e deixar todo o restante conteúdo "normal", à semelhança do que acontece no twitter e facebook, onde temos o header fixo, por exemplo.

Eu consigo fixar o header facilmente, mas depois o restante conteúdo fica quase todo debaixo do header...e não estou a conseguir o porquê, pois tal como disse ainda estou a aprender...

Se eu vos meter aqui o código html e css podem-me ajudar e dizer o que tenho de fazer bem?

Obrigado

Posted (edited)

1º - quando existe problemas o código ajuda sempre

2º - por acaso neste caso não é necessário. felizmente o problema está bem explicado (algo que começa a ser raro no forum)

exemplo para resolver o teu problema:

<!DOCTYPE html>
<html>
<head>
 <style type="text/css">
  html, body { height: 100%; margin: 0; }
  html { padding: 0; }
  body { padding-top: 100px; /* header height */ }
  div { padding: 0; margin: 0; }
  #header { position: fixed; top: 0; left: 0; width: 100%; height: 100px; background-color: #f00; }
  #content { height: 1200px; background-color: #0f0; }
 </style>
</head>
<body>
 <div id="header"></div>
 <div id="content"></div>
</body>
</html>
Edited by softklin
Adicionado GeSHi
IRC : sim, é algo que ainda existe >> #p@p
Posted (edited)

No meu caso o header é uma imagem...

Um exemplo de um site com header fixo:

http://davidchambers...sition-headers/

Posso só colocar o código CSS ou necessitas do html também? 🙂

Obrigado pela resposta

HTML

<!doctype html>
<html lang="pt">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>FOOTBALL GAMING PT</title>
<link rel="stylesheet" href="main.css"/>

</head>
<body>
<div id="main">
<header id="header">
  <p><img src="imagens/Imagens/header3.jpg" width="1000" height="288"></p>
</header>
<nav id="menu">
<ul>
 <li>PRO EVO SOCCER </li>
 <li>EA SPORTS FIFA</li>
 <li>FOOTBALL MANAGER</li>
</ul>
</nav>
<section id="conteudo">
<article>

<header>
<hgroup>
<h1>FIFA 13 anunciado</h1>
<h2>A EA Sports anunciou esta semana o sucessor de Fifa 12.</h2><br>
</hgroup>
</header>
<footer><p>Football Gaming 2012</p></footer>

</article>
<article>

<header>
<hgroup>
<h1>Konami anuncia PES 2013</h1>
<h2>A Konami anunciou que Ronaldo será novamente capa da nova versão do PES.</h2><br>
</hgroup>
</header>
<footer>Football Gaming 2012</footer>
</article>
</section>
<aside id="novidades">
<h2>NOVIDADES</h2>
<h3>Novo Site</h3>
</aside>

<footer id="rodape"><center>Football Gaming PT @ 2012 (Todos os direitos reservados) </center></footer>

</div>
</body>
</html>

CSS

*{
margin: 0px;
padding: 0px;
}
h1{
font: bold 16px Tahoma;
}
h2{
font: 12px Tahoma;
}
header, nav, section, article, aside, footer{
display:block;
}
body{
text-align:center;
background-image:url('imagens/imagens/fifa12.jpg');
background-repeat:no-repeat;
background-attachment:fixed;
background-position:center;
}
#header{
position: fixed;
width: 1000px;
height: 288px;
top:0px;
}
#main{
border: 3px solid black;
background: white;
width: 1000px;
margin: 10px auto;
text-align:left;
}
#menu{
background: #699AE0;
border: 1px #F00;
padding: 20px;
}
#menu li{
display:inline-block;
list-style:none;
padding: 5px;
font: bold 16px Tahoma;
color: white;
text-align:center;
border: 2px solid black;
}
#conteudo{
float: left;
width: 660px;
margin: 30px; /* 720px sobra 280 left */
}
#novidades{
float: left;
width: 220px;
margin: 20px 0px;
padding: 30px;
background: #D6F361;
}
#novidades h3{
font: 12px tahoma;
padding: 3px;
}
#rodape{
clear:both;
font: 14px tahoma;
padding: 20px;
border-top: 1px solid black;
}
article{
background: #EEE287;
border: 1px solid black;
padding: 20px;
margin-bottom: 15px;
}
article footer{
text-align: right;
}
Edited by softklin
Adicionado GeSHi
Posted

Nada disso... 🙂

A minha questão é, onde eu meto esse código que me facultaste? Na folha de html?

Eu tentei experimentar com esse link que disse...mas dá-me o mesmo erro...o conteúdo fica sobreposto pelo header...

Obrigado desdde já.

Posted

Sim, eu sei que tem html e css, mas como estou numa fase inicial prefiro separar tudo.

Sim, tenho estado a seguir o thenewboston (vídeos), mas como referi é normal que tenha estas dúvidas, começei há uma semana e pouco...lol

Esse código que me enviaste funciona, mas o header sai fora da boarder da div main, ou seja fica no ecrã completo. E se eu colocar o url da imagem que quero para header não funciona...não sei porquê... :\

Posted

Não tenho url, pois estou a fazer offline... :\

Mas postei o código acima, no post #3.

Se quiseres também posos tirar uma SS. É que não estou mesmo a ver o que estou a fazer mal...já experimentei de todas as maneiras e feitios...

Posted (edited)

Ok já consegui através de CSS.

Tive que fazer isto no CSS:

#header{
position: fixed; /* fixed header*/
height: 288px;
top: 0px;
}
#main{
border: 3px solid black;
background: white;
width: 1000px;
margin: 10px auto;
text-align:left;
padding-top: 280px; /* fixed header*/
padding-bottom: 280px; /* fixed header*/
}

A única questão é que o vídeo do youtube, se eu puxar o conteúdo para cima, ainda se sobrepõe ao header, como mostrei na SS...acho que há uma forma de resolver isso...não sei é qual...

nxt91d.jpg

Edited by softklin
Adicionado GeSHi
Posted

usa o z-index. Experimenta meter a 1.

z-index:1;

(se n for 1, é -1)

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Posted

tens de adicionar ao elemento header para que fique por cima dos outros elementos

Mas nos outros não teria que colocar então um z-index com um número maior? Ou o -1 faz isso por defeito?

Obrigado

Posted (edited)

Penso que tecnicamente o valor quando não tens definido z-index é 0, portanto ao colocares z-index:1 no header este ficará por cima de qualquer outro controlo.

A questão aqui é que o video do youtube estará a correr num iframe parece-me e aí poderás ter outro tipo de problemas. Não sei se o z-index será respeitado.

Edited by rumbafum
Posted

A questão aqui é que o video do youtube estará a correr num iframe parece-me e aí poderás ter outro tipo de problemas. Não sei se o z-index será respeitado.

O problema nem é o iframe, o problema é o próprio plugin do flash. Esse é que pode não respeitar o z-index.

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Posted

O problema nem é o iframe, o problema é o próprio plugin do flash. Esse é que pode não respeitar o z-index.

Na verdade era isso que queria dizer 😉

Para funcionar tens que especificar o parâmetro wmode=transparent no link de youtube.

Posted

Na verdade era isso que queria dizer 😉

Para funcionar tens que especificar o parâmetro wmode=transparent no link de youtube.

Como esperava o z-index=0 ou -1 não deu... :\

Como faço essa operação do parêmtro wmode=transparent no link do youtube?

Obrigado por todas as dicas pessoal 🙂

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.