Dec-07 06

Fixando um conteudo na tela usando CSS

Enviado por: Thales RB. .     5 comentários.     Categorias: HTML-CSS

Como eu já havia falado antes o Internet Explorer 6 não reconhece o comando position: fixed(o IE7 já reconhece) então para podermos fixar um conteudo na tela precisamos usar um hack.

Veja aqui um exemplo de como é um conteudo fixo

Vejamos então como fazer isso.

Nos navegadores descentes(qualquer um que não seja o IE), usamos os seguintes atributos do CSS para fixar um conteudo na tela:

<style type="text/css">

#meudiv{
position: fixed;
left: 100px;
top: 50px;
}

</style>

<div id="meudiv">
Algum conteudo aqui
</div>

Sendo o left e top as distancias que o conteudo irá ficar em relação a tela.

Como o IE 6 ou anterior não reconhece esse comando precisamos usar o seguinte hack:

<style type="text/css">

* html #meudiv{ /*IE6 only rule, applied on top of the default above*

left: 100px;
position: absolute;
top: expression(document.compatMode=="CSS1Compat"?        document.documentElement.scrollTop+50+"px" : body.scrollTop+100+"px");

}

</style>

<div id="meudiv">
Algum conteudo aqui
</div>

O * html é um hack que indica que o conteudo só será executado no IE 5 ou 6, e para alterar a altura que o conteudo ficará na tela é só mudar o numero em body.scrollTop+100+”px”

Como eu havia explicado no post anterior você pode colocar o dois css #meudiv que o segundo só será executado no IE e o primeiro em todos os outros navegadores

Mas com esse hack o conteudo fixo, fica um pouco estranho no IE, pois ao mover a tela, é como se o conteudo o se movesse também, e ele retorna para posição fixa, principalmente se for algo grande(muitas linhas), veja o exemplo para saber do que estou falando.

E no fórum tem um exemplo de uso disso na imagem de ir ao topo(irei colocar algo parecido aqui no blog)

Compartilhe nos Sites Sociais: Adicionar esta notcia no Linkk Adicionar esta notcia no Rec6 Adicionar esta notcia no Ueba
Comment on January 8th, 2008.

Nossa, essa eu nunca tinha visto, mas cara eu preciso deixar uma div fixada no rodapé da janela, no caso eu uso position: fixed; bottom: 0; funciona tranquilo no IE 7 e FF, porém no IE 6 não
e essa sua expressão deixa ela fixada mas só com uma distância determinada do topo, não teria como fazer ela ficar colada no rodapé?

Eu tentei de tudo mas não consegui…

Valeu, e excelente post.

Comment on January 8th, 2008.

dá sim pra deixar colada no rodapé é só usar porcentagem ao invés de pixels
Ex:
top: expression(document.compatMode==”CSS1Compat”? document.documentElement.scrollTop+95+”%” : body.scrollTop+95+”%”);

Comment on April 22nd, 2008.

Obrigado.
Ajudou muito este seu artigo.
Para mim foi muito util a parte
* html #meudiv q será interpretado somente pelo IE.
Desta forma fiz a formatação condicional para ie e Firefox.
Deu certo comigo, portanto fica o meu agradecimento

hhhhhhhhhhhhhhhhh
Comment on July 25th, 2008.

jjjjjjjjjjjjjjjjjjjjj

ssssssss
Comment on July 25th, 2008.

ssssssssss

Deixe um comentário

Os campos nome e e-mail são obrigatorios(o e-mail não será exibido), a URL é opcional.

Os comentários podem ter os seguintes comandos:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>