Verificar Resolução Do Navegador E Trocar Css
#1
Posted 23/01/2008, 15:13
Tenho 1 layout e dois estilos CSS. Um para a resolução 1024 e outro 800.
Como faço para que seja verificado a resolução do navegador do visitante e então carregar o estilo.css de acordo?
Alguém sabe como fazer?
Obrigado!
#2
Posted 23/01/2008, 15:25
isso vc pode fazer com esse java script
function verificaResolucao(){ if(screen.width == 800){ faça sua mudança de css } else a outra mudança }
tenta usar isso, acho que dá certo
abrass
IT Analyst and Developer
#3
Posted 23/01/2008, 16:14
Se não for pedir muito, o que eu coloco em "faça sua mudança de css" e "a outra mudança" ?
Tá, pode me chamar de mané, eu deixo. :-P
E esse "verificaResolucao" tem que colocar na tag <body> ou não tem nada a ver?
Dá uma mastigada pra mim, por favor. Meu negócio é CSS e XHTML, quando entra JS e PHP eu me perco todo.
Grande abraço!
#4
Posted 23/01/2008, 16:43
Obrigado Aimberê.
Se não for pedir muito, o que eu coloco em "faça sua mudança de css" e "a outra mudança" ?
Tá, pode me chamar de mané, eu deixo. :-P
E esse "verificaResolucao" tem que colocar na tag <body> ou não tem nada a ver?
Dá uma mastigada pra mim, por favor. Meu negócio é CSS e XHTML, quando entra JS e PHP eu me perco todo.
Grande abraço!
Olha tenho quase certeza de que em algum canto desse forum temos esse código pronto...
Utilize a pesquisa do forum ... verifique se alguns desses pode te ajudar:
[topic="http://forum.wmonlin... Resolução da Tela[/topic] (Link expirado, acesse abaixo)
http://forum.wmonlin...
[topic="http://forum.wmonlin... da Tela[/topic] (Link expirado, acesse abaixo)
http://forum.wmonlin...
Outra coisa, essas partes "faça sua mudança de css" e "a outra mudança" são os atributos css dos objetos que vc vai mudar, via Javascript!
O "verificaResolucao" vc coloca no Body sim ... usando o onload ficando assim <body onload="verificaResolucao();">
Edição feita por: Renan L. Queiroz, 23/01/2008, 16:51.
Especialidade: Desenvolvimento e Banco de Dados.
Este post lhe ajudou? Agradeça:
#5
Posted 23/01/2008, 17:22
De qualquer forma, ao trocar os estilos somente no onload, o site vai carregar inteiro e depois aplicar as transformações. Ou seja, o usuário vai ver aquela coisa feia e depois o site vai se "construindo" diante dos olhos dele. Além de existir o fato da obstrusão caso não esteja habilitado o javascript no navegador.
Como o W3c vacila, mas não está pra brincadeira, já existe uma solução. São chamadas de folhas de estilo alternativas. Modo convencional de importar:
<link rel="stylesheet" type="text/css" href="main.css" title="Estilo Principal" />
O "rel" define que é uma folha de estilos. No seu caso seria mais ou menos assim:
<link rel="stylesheet" type="text/css" href="menor.css" title="800" /> <link rel="alternate stylesheet" type="text/css" href="maior.css" title="1024" />
O Mozilla possui um menu que permite ao usário fazer a troca, já o IE não ... nossa que novidade o IE estar atrás ... ^^
E não faz diferença, já que você quer que javascript faça isso. Como eu sei que ninguém vai ter interesse em aprender, vou colocar a função direto:
function setActiveStyleSheet(title) { var i, a, main; for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) { a.disabled = true; if(a.getAttribute("title") == title) a.disabled = false; } } }
É só adicionar a função no HEAD da página e logo abaixo fazer a chamada:
setActiveStyleSheet('1024'); // ou se for 800 setActiveStyleSheet('800');
É só adaptar à função postada acima pelo outro usuário.
Yeah I do have some stories, and it's true I want all the glory ...
#6
Posted 23/01/2008, 18:43
Caso alguém passe por aqui com essa dúvida, a solução oferecida pelo Aimberê e Renan, fiz assim e funcionou:
if (screen.width == 1024) { document.write('<link rel="stylesheet" type="../1024.css">') } else { document.write('<link rel="stylesheet" type="../800.css">') }
Já a solução do bimonti dispensa explicações, está bem fácil entender.
E foi essa que optei. Criei dois links dando a opção pro usuário escolher a resolução preferida.
Muito obrigado a todos!
Edição feita por: Rei Lagarto, 23/01/2008, 18:45.
#7
Posted 25/01/2008, 08:36
O Mozilla possui um menu que permite ao usário fazer a troca, já o IE não ... nossa que novidade o IE estar atrás ... ^^
E não faz diferença, já que você quer que javascript faça isso. Como eu sei que ninguém vai ter interesse em aprender, vou colocar a função direto:function setActiveStyleSheet(title) { var i, a, main; for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) { a.disabled = true; if(a.getAttribute("title") == title) a.disabled = false; } } }
Bimonti, muito legal essa função, mas como não quero passar o resto da minha
vida de códigos de outras pessoas procurei à respeito do funcionamento dessa função ...
Valeu pelo conhecimento!
Maujor
Edição feita por: Renan L. Queiroz, 25/01/2008, 08:37.
Especialidade: Desenvolvimento e Banco de Dados.
Este post lhe ajudou? Agradeça:
#9
Posted 25/01/2008, 10:52
Muito legal ... já estou fazendo alguns testes!
Muito interessante ... poupa muito trabalho!
Edição feita por: Renan L. Queiroz, 25/01/2008, 10:54.
Especialidade: Desenvolvimento e Banco de Dados.
Este post lhe ajudou? Agradeça:
#10
Posted 18/02/2008, 12:49
Se puder ajudar, agradeço, já quebrei a cuca e não consegui descobrir.
Todos os outros browsers, Firefox, IE7, Safari, etc., guardam perfeitamente.
Abraço!
#11
Posted 18/02/2008, 14:22
Tem que usar cookies para salvar a folha escolhida. Está em português.
Yeah I do have some stories, and it's true I want all the glory ...
#12
Posted 18/02/2008, 15:43
Bom, como não manjo de javascript peço que dê uma olhada, se puder claro, não se trata de querer mastigado, é que realmente não conheço a linguagem.
Obrigado.
#13
Posted 18/02/2008, 16:54
assim, independente da resolucao ser 800 ou maior, o layout nao mudaria.
mas caso seja algo como um forum, ou precise realmente ocupar a tela inteira, ignore o comentario.
vlw
"Living to learn... learning to live!"
Useful links: Rules | Search
#14
Posted 26/02/2008, 08:45
Mas isso já consegui com a dica do Bimonti, tenho aqui duas CSS que muda a resolução mantendo o layout fixo. O galho está no o IE6, como explico na mensagem acima.
Aguardo a caridade de algum mestre em javascript pra resolver isso. .-)
Abraço!
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)