• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

SonicSpot

Problema com scroll em frames

14 mensagens neste tópico

Viva! Estou aqui com um problema numa página que estou a criar. Tenho uma página que quando está dentro do frame, aparece scroll vertical e horizontal, quando o horizontal é perfeitamente dispensável. Quando essa mesma página é aberta fora de um frame, aparece correctamente. Deixo aqui um exemplo da página dos frames e da própria página para que possam apontar o problema. http://www.minimalcomplex.com/problemaScroll.rar

Agradecia que me ajudassem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

em principio, terá a ver com o tamanho da tabela onde está tudo inserido... experimenta a colocar no width 97% em vez de 100%... quando é criado o scroll vertical, a página perde cerca de 30px de espaço efectivo na largura... pode ser por causa disso...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

já tentei colocar a width da tabela até 90%, que já seria muito menos do que o ideal, e mesmo assim, continua a aparecer o scroll horizontal :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Provavelmente é a pagina que queres colocar no frame esta muito grande para o tamanho da frame, tenta reduzir o tamanho da pagina a colocar no frame pode ser que resulte :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o problema não está no tamanho do conteúdo.. já reduzi de 1 forma descomunal, e continua a aparecer. Andei a pesquisar sobre o assunto, e tem a haver com a primeira linha do HTML (<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">), que no IE6, traz problemas. O IE6 acede ao fixeiro .DTD para procurar as tags "permitidas", e se houver alguma k não está nessa lista, comporta-se de uma maneira estúpida, coloca scrolls mesmo sem ser necessário. Retirei essa primeira linha, e já resolveu o problema, mas isso vai fazer com que o código não seja interpretado como código "standart" em todos os browsers, ou seja, digamos k é 1 patch a remediar, pk o problema em sí, não está resolvido, simplesmente trokei um por outro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Dá pra postares também o CSS? A forma como se manifesta o problema é quase de certeza relacionada com o box model (a forma como os browsers interpretam tudo o que seja elementos blocos em termos de altura/largura/margens/paddings), uma vez que parece ser despoletado pela existencia (ou não) do DOCTYPE.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Viva mais uma vez. O CSS é o seguinte:

body {
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-style: normal;
color: #FFFFFF;
background-color: #171717;
background-image:url(../img/bg_tile.gif);
background-attachment: fixed;
}
td,th {
font-family: Tahoma, Arial, Helvetica, sans-serif;
font-size: 10px;
color: #FFFFFF;
}
a {
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-style: normal;
font-weight: bold;
color: #FFFFFF;
}

a:hover {
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-style: normal;
font-weight: bold;
color: #FF99FF;
}
.titulo {
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 14px;
font-style: normal;
font-weight: bold;
color: #FF99FF;
}
td {
height: 10px;
padding-left: 5px;
padding-right: 5px;
padding-top: 5px;
padding-bottom: 5px;
}
th {
text-align: left;
background-color: #222222;
height: 10px;
padding-left: 5px;
padding-right: 5px;
padding-top: 5px;
padding-bottom: 5px;
}
.tabelaFundo {
background-color: #111111;
}
input {
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-style: normal;
color: #000000;
}
textarea {
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-style: normal;
color: #000000;
}
.funcMsg {
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-style: normal;
font-weight: bold;
color: #FF99FF;
}
.info {
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-style: normal;
color: #FF99FF;
}

.funcao {
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-style: normal;
font-weight: bold;
color: #FF99FF;
}
.offset {
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-style: normal;
font-weight: bold;
color: #FF44FF;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem, não perdi assim muito tempo com isso, mas realmente há aí qualquer coisa de estranho... os "tapa-buracos" do costume também não parecem ajudar, assim de repente não te sei dar nenhuma solução... Tenho de investigar...!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá!

Pois é... o IE é mesmo esquisito mas existe uma forma de resolver isso (talvez... comigo resulta em algumas páginas que já fiz, no teu código ainda não experimentei), com um bocadinho mais de pesquisa na net se calhar chegavas lá...

Já ouviste falar em overflow? É possível "desligar" completamente os scrolls de uma página controlando o overflow dessa página na CSS.

Então aqui vai:

se quiseres "desligar" completamente os scrolls da página

html {
overflow: hidden;
}

se preferires "desligar" apenas o scroll horizontal

html {
overflow-x: hidden;
overflow-y: scroll;
}

se preferires "desligar" apenas o scroll vertical

html {
overflow-x: scroll;
overflow-y: hidden;
}

se quiseres podes também tentar com

html {
overflow: auto;
}

Isto acho que tem que ser usado na CSS da página que vai aparecer dentro da frame.

Espero que resolva o problema!

Abraços

Editado: O código acima mostrado não era o correcto e não funcionava como é referido nos 2 posts seguintes, foi por isso corrigido para evitar equívocos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu acho que cheguei a experimentar isso (os tais "tapa-buracos" mencionados anteriormente), e estranhamente não funcionou... De qualquer forma é melhor confirmares, SonicSpot... :/

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ya, n é solução para o problema.. eu ja tinha visto isso mas, no máximo, isso é cm o jreis diz, um "tapa-buraco". Eu quero que caso realmente sejam necessários, os scrolls apareçam.. o problema é eles aparecerem quando não são necessários.. :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vocês têm razão, deculpem, o erro foi meu.

No código apresentado acima por mim, onde se lê "body" deveria ser "html" (vou já editar o post para corrigir isso).

Tentei isto com o teu código e resultou, não sei bem se é isto que queres, mas pelo que percebi tu não queres scroll horizontal mas queres scroll vertical só quando necessário, é isso?

Se for isso acrescenta o seguinte no topo da CSS da página "agenda.html" e vê como é que fica

html {
overflow-x: hidden;
overflow-y: auto;
}

Quanto a serem "tapa-buracos", são isso mesmo mas infelizmente continuam a ser necessários e hão-de continuar a ser enquanto o browser mais usado (IE) não obedecer aos standards... Já agora testa no IE7 porque é um bocado diferente do 6 e do 5 (o 7 já obedece a mais standards) e podes estar a tapar um buraco dos IE's antigos e estar a abrir outro no IE novo. 

Suspeito que se não quiseres eliminar a linha <!DOCTYPE...> e se isto não resultar então pode não haver solução para a tua página ser vista correctamente no IE. A solução é mesmo os utilizadores começarem a usar outros browsers que não o IE e acho que devem ser as pessoas que desenvolvem websites a alertar para isso. Por exemplo os sites que desenvolvo, apesar de funcionarem com o IE, normalmente "alertam" para o facto de serem desenvolvidos para serem vistos com outros browsers que não o IE e há mesmo quem seja mais radical e exclua completamente os utilizadores que usam IE de verem os seus sites correctamente e informam-nos que não o estão a vêr correctamente porque o seu browser não é capaz de o fazer indicando-lhes um que o faça, o que se calhar seria a melhor coisa a fazer para obrigar a Microsoft a aderir aos standards. Mas isto já são outros assuntos que começam a fugir ao tópico.

Bem... espero ter ajudado.

Abraços!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora