..:: MX Studio Fóruns ::..: Site centralizado - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Site centralizado

#1 User is offline   babu 

  • Group: Membros
  • Posts: 1078
  • Joined: 19-December 03

Posted 18 March 2005 - 12:51 PM

Salve tongue.gif

Mais um codigo para a galera se divertir.

Independendo da resolução de vídeo do cliente, é possível ajustar o site para que o mesmo fique sempre centralizado na janela. Veja aqui como fazer isso!

Inicialmente, o seguinte código ficará dentro do <HEAD> da página:



QUOTE
<script language="JavaScript">
function alinhamento(){
var w=document.body.clientWidth;
var calc = w-document.all['alinha'].offsetWidth;
alinha.style.left=calc/2
}
</script>




Depois, a função criada será inserida dentro da tag <BODY> usando os eventos "onload" e "onresize"



QUOTE
<body onload="alinhamento()" onresize="alinhamento()">





Por último, deverá ser criada uma camada com posicionamento absoluto logo após a tag <BODY>.
A mesma deve ser fechada antes da tag </BODY>



QUOTE
<body onload="alinhamento()" onresize="alinhamento()">
<div id="alinha" style="position:absolute">

*********** o site vai aqui ***************

</div>
</body>





Pronto, com isso o seu site está alinhado em qualquer tipo de resolução !

Explicando:
A variável w capturará o Width disponível no browser do cliente.
A variável calc pegará o valor da variável w e irá subtrair do Width da camada alinha
Por que isso?
o Width do browser do cliente menos o Width da camada que cobre toda a página, mostrará quantos pixels ficaram de fora do site, sendo assim, podemos trabalhar com eles e aproveitá-los para alinhar o site.
Agora, na linha alinha.style.left=calc/2, eu atribuo o valor gerado na variável calc e divido por 2, para pegar o valor dessa divisão e colocar no "left" da camada alinha, pois como ela está com posicionamento absoluto, posso posicioná-la onde eu quiser. Dessa forma, o valor que ficou de fora do site foi dividido e uma das metades dele foi utilizado para criar um espaço à esquerda da camada, na qual esse espaço será sempre relativo ao tamanho da resolução, ficando sempre alinhado seja qual for a resolução de vídeo do pc!

O mesmo pode ser feito com o Height da página, usando a mesma lógica, na qual ficaria assim:



QUOTE
<script LANGUAGE="JavaScript">
function alinhamento(){
var w=document.body.clientWidth;
var h=document.body.clientHeight;
var calcw = w-document.all['alinha'].offsetWidth;
var calch = h-document.all['alinha'].offsetHeight;
alinha.style.left=calcw/2;
alinha.style.top=calch/2;
}

</script>




Dessa forma, se o site ou uma imagem forem de dimensões bem pequenas, ficarão centralizados tanto em relação ao Width quanto em relação ao Height, como ja dito antes, "independendo da resolução de vídeo"


0

#2 User is offline   Marcus VBP 

  • Group: Membros
  • Posts: 948
  • Joined: 06-June 03

Posted 19 March 2005 - 07:56 AM

mas fazendo:


#container {
width: 778px;
position: absolute;
left: 50%;
margin: 0px 0px 0px -489px;
}

vc também terá um layout centralizado independente da resolução do usuario


A unica observação q faço eh que o margin-left tem que ser igual ao negativo da metade da largura do layout
0

#3 User is offline   kikomx 

  • Group: Membros
  • Posts: 408
  • Joined: 16-July 04

Posted 19 March 2005 - 10:45 AM

Pessoal, eu to estudando tudo isso, mas quero fazer uma pergunta: existe alguma desvantagem em simplesmente usar um "<div align=center>" ?
Porque se não houver, serão várias linhas a menos de código !

T+ thumbsup.gif
0

#4 User is offline   Marcus VBP 

  • Group: Membros
  • Posts: 948
  • Joined: 06-June 03

Posted 19 March 2005 - 05:14 PM

sim.

atributos de formatação não devem ser usados mais.

a formatação deve ser feita utilizando CSS, no XHTML.

olha suponha que vc tenha 15 paginas com <div aling="center"></div>, entao por um motivo qualquer vc tem que colocar o alinhamento à esquerda ou à direita, vc terá que alterar o codigo de 15 paginas.

se vc usar css pra centralizar, vc soh precisa alterar 1 arquivo, o css.
bem mais prático.

sem falar que usando <div aling="center"></div> vc nao vai ter um layout centralizado, apenas seus textos ficarão centralizados.
0

#5 User is offline   fernando3400 

  • Group: Membros
  • Posts: 10
  • Joined: 18-November 05

Posted 18 November 2005 - 02:53 PM

Oiii galera, aproveitando acho q vcs poderiam me ajudar é o seguinte...
Eu tenhu uma página e preciso colocar um popup nela...ateh ai normalz...eu colokei e pronto...soh q o popup eh muito grande e precisaria ser iniciado no topo da tela tem como?

O código q eu estou usandp eh esse:

JavaScript
<script language="JavaScript">
function janela()
{
open ("popup.cfm","janela", "status=no,width=650, height=875")
}
janela()
</script>


Brigado, ateh mais!!!!
0

#6 User is offline   GEcKo 

  • Group: Membros
  • Posts: 1
  • Joined: 10-May 07

Posted 10 May 2007 - 11:32 AM

Olá pessoal.

Sou novo aqui no fórum e também na construção de sites...
Quanto à explicação do código acima, como eu poderia usar isso numa página construída com LAYERS?

Tentei fazer aqui mas não ficou bem do jeito que pensei.
Alguém poderia ajudar?
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic


Similar Topics Collapse


Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)