Jump to content
halfar

aumentar tamanho da div automaticamente

Recommended Posts

eu preciso aumentar o tamanho de uma div de maneira automática. É assim:

 

estou criando algumas divs dentro de uma laço for, no conteudo da div eu puxo algumas informações do banco de dados. Exemplo:

Citar

 

for($i=0;  $i<=count($rows); $i++){

<div id=nome class=nome><?php echo "Texto";?></div>

}

 

 

Então veja, que dentro do laço for vai criando várias divs. Até aqui tudo bem, as divs aparecem normalmente uma embaixo da outra.

O problema é que cada div, sua largura uma é diferente da outra. A primeira pode ter 10 pixels, a segunda 303 pixels, a terceira pode ter 12 pixels, e assim sucssivamente, o valor é 

aleatório.

Tem como fazer isto??

Share this post


Link to post
Share on other sites

E qual a dúvida? ainda não entendi..

se você der "float" ou "display: inline-block", isso acontece naturalmente.

Share this post


Link to post
Share on other sites
1 hora atrás, William Bruno disse:

E qual a dúvida? ainda não entendi..

se você der "float" ou "display: inline-block", isso acontece naturalmente.

 

ah...tá.... por isso que é bom falar com quem sabe...vou testar...

 

grato.

Share this post


Link to post
Share on other sites

William Bruno, mas como mudar o tamanho da div? Preciso alterar a largura da div.

Dentro do laço for, a largura de cada div muda a cada passagem do laço for...

Share this post


Link to post
Share on other sites

Ainda não consegui entender o que você quer... você quer a div ajustada automaticamente de acordo com o conteúdo dela ou você quer um padrão para todas as divs independente do conteudo dela?

 

Mas acredito que ambas as duas se resolve no css

Share this post


Link to post
Share on other sites

execute isso:

<style>
.largura {
    display: inline-block;
    border: 1px solid #000;
}
</style>
<div class="largura">lorem</div>
<div class="largura">lorem ipsum dolor</div>
<div class="largura">lorem ipsum</div>
<div class="largura">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptatem ipsa error assumenda deleniti voluptatibus rerum quibusdam minus </div>
<div class="largura">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Impedit vero voluptatem quia eos beatae, esse omnis sapiente debitis eius non! Est reiciendis molestiae recusandae perspiciatis ut rerum, sit expedita facere?</div>

cada uma tem uma largura ai.
Se não for, tente reproduzir um screenshot do que você precisa.

Share this post


Link to post
Share on other sites

bem, pelo o que percebi, a largura no seu exemplo aumenta de acordo com o texto inserido.

No meu caso não vai texto algum. Será apenas uma div com um fundo de alguma cor.

Falando exatamente o que quero, esta div irá simular uma barra de progressão,  sabe quando está fazendo o download de algum arquivo e a barra vai crescendo enquanto faz o download? Seria mais ou menos isso, no caso não precisa mostrar ela aumentando, pode ser fixa, porém seu tamanho de largura  será variável de acordo com valores que irei extrair do banco de dados.

 

por exemplo:

caixa de laranjas cabem 200 laranjas.

porém na caixa tem apenas 50 laranjas.

 

portanto, 50/200 = 25, ou seja, a caixa contém 25% do seu espaço ocupado.

 

A barra será portanto de 25% de comprimento.

 

Num proximo registro a caixa poderá ter 80 laranjas que irá dar um outro resultado percentual, fazendo com que a

barra da div seja de outro tamanho.

 

Não sei como são feitas estas barras progressivas que a gente costuma ver nos downloads,  então estou bolando esta idéia com a div.

 

Share this post


Link to post
Share on other sites
16 minutos atrás, halfar disse:

bem, pelo o que percebi, a largura no seu exemplo aumenta de acordo com o texto inserido.

No meu caso não vai texto algum. Será apenas uma div com um fundo de alguma cor.

Falando exatamente o que quero, esta div irá simular uma barra de progressão,  sabe quando está fazendo o download de algum arquivo e a barra vai crescendo enquanto faz o download? Seria mais ou menos isso, no caso não precisa mostrar ela aumentando, pode ser fixa, porém seu tamanho de largura  será variável de acordo com valores que irei extrair do banco de dados.

 

por exemplo:

caixa de laranjas cabem 200 laranjas.

porém na caixa tem apenas 50 laranjas.

 

portanto, 50/200 = 25, ou seja, a caixa contém 25% do seu espaço ocupado.

 

A barra será portanto de 25% de comprimento.

 

Num proximo registro a caixa poderá ter 80 laranjas que irá dar um outro resultado percentual, fazendo com que a

barra da div seja de outro tamanho.

 

Não sei como são feitas estas barras progressivas que a gente costuma ver nos downloads,  então estou bolando esta idéia com a div.

 

 

Diga exatamente o que quer fazer... para a div aumentar de tamanho até onde sei ela precisa de conteúdo!

 

Se o que você que é uma barra de progresso, sugiro que faça de outra forma.

Segue um exemplo pra barra de progresso usando bootstrap:

http://getbootstrap.com/components/#progress

Share this post


Link to post
Share on other sites

e pq ao invez de ir somando,  você pega o valor ja final aquilo que ja tem de laranja e apartir dai faz a barra

que, de forma básica, seria uma div com uma certa altura e dentro dela uma outra com  a mesma altura e largura de X% que é o valor do seu calculo e cor de fundo diferente da outra

https://jsfiddle.net/g81r2jmu/

só ficaria a largura pra ser definida na tag depois que o php fizer o calculo

Edited by Electronic

Share this post


Link to post
Share on other sites

bem pessoal, veja só: a forma como se faz o calculo não é importante, porque esta parte já tenho resolvido.

a questão é fazer a div assumir o tamanho na largura de acordo com a resposta do cálculo.

 

fiz assim:

neste ponto do programa já foi feita o acesso ao banco de dados, então no laço for abaixo recupero os valores do bd e faço o estilo da div (se bem que desta forma não acho legal, mas não encontrei outra solução ainda)

Citar

 

for($i =0; $i <=count($rows)-1; $i++){

...recupero valores do BD

$largura[$i] = $rows[$i]["largura"];

 

echo "<style>";
echo ".barra {";
echo "width: " . $largura[$i]  . "px";
echo "}";
echo "</style>";


echo    "GRUPO: " . $rows2[$i]["grupo"]  . "<div  class='barra'></div>";
 

}

 

 

 

 

 

existe uma classe já previamente definida no arquivo estilos.css, porém contém as informações basicas da div, não contém valor de largura, pois o valor da largura será definida dentro do laço for.

 

o arquivo de estilos é este:

Citar

.barra {
   height: 30px;
  background-color: #ADFF2F;
  left: 122px;
  border: 1px solid #000000;
  
}


Agora vejam só: o código funciona de boa, os valores da largura são captados corretamente, a div é montada corretamente no html, só que a div não fica no tamanho correto, de acordo com a largura específica de cada uma, na realidade ambas ficam com o mesmo tamanho.

 

Veja o código html como ficou, apos executar a pagina:

<style>.barra {width: 24px}</style>GRUPO: A<div class='barra'></div><style>.barra {width: 10px}</style>GRUPO: B<div class='barra'></div> 

 

A resposta do codigo html está correta, note que uma div tem o valor width com 24 e outra com 10. Mas ambas

aparecem com o mesmo tamanho.

 

Para ser sincero, não sei se fica bem colocar o style dentro do laço for. Antes eu tinha colocado os valores dos estilos dentro da própria div, assim: style="width: $largura px"...etc...

funcionava também, porém também as divs ficavam n mesmo tamanho...

 

 

 

Share this post


Link to post
Share on other sites

resolvido.

consegui fazer de melhor maneira, retirando a declaracao dos estilos dentro do laço for (coisa que eu não estava gostando mesmo).  Mantive o arquivo de estilos base num arquivo css, e  para alterar a largura dinamicamente, uma

vez capturado do banco de dados o tamanho da largura foi só montar a div assim:

 

Citar

echo    "GRUPO: " . $rows2[$i]["grupo"]  . "<div class='barra' style='width: $largura[$i]" . "px'></div>";

 

O problema estava na maneira como se escreve este código acima,  apesar do navegador mostrar tudo correto, mas estava dando problema na hora de exibir. Foi só mudar o jeito de escrever o código. É uma daquelas questões que crreio se deve usar as barras de scape... mas consegui fazer funcionar da maneira acima.

 

A maneira errada como havia escrito estava assim:

Citar

echo    "GRUPO: " . $rows2[$i]["grupo"]  . "<div class='barra' style='width: $largura[$i] px; '></div>";

 

  • +1 1

Share this post


Link to post
Share on other sites

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

  • Similar Content

    • By Kaio Kdesigner
      Oi Pessoal!
       
      Estou editando um tema, e ai as imagens dos thumbsnails estão ficando distorcidas.
       
      Cada categoria tem um tamanho diferente de imagem, mas ai elas ficam destorcidas dentro do tamanho (meio confuso né?)
       
      ta ficando assim: https://screenshot.net/gxvqc9y
       
      Como que faço para colocar a imagem dentro do tamanho, ex: 150x150, sem q ela fique distorcida??
    • By renan mafra
      Olá pessoal,

      Eu tenho uma página .html e um DIV principal que chamei de conteiner eu tenho mais outras DIVS dentro dessa DIV principal,
      eu gostaria que na medida que as DIVs internas fossem preenchidas a div principal container se expandisse automaticamente
      na vertical.
      Eu quero fazer aquele esquema em que ao clicar em um dos 5 links  ele se abra (se expanda) o código base já tenho mas não sei
      como a div que engloba tudo "cresça" para baixo na medida que for sendo clicado e abrindo as outras DIVS, estou no desenvolvimento
      ainda mais quando boto height: auto; a div container se contrai em vez de acompanhar o resto, como faço isso no CSS ?
       
      Segue o esqueleto do código:
       
      <html> <head> <style> .container{ width: 850px; min-height: 513px; margin-left: 5%; margin-top: 5%; background-color: #DCDCDC; border-radius: 0.7em 0.7em; } .......... ........ ......... ........ </style> </head> <body> <div class="container"> <div class="filho"> <div class="topo"></div> </div> <div class="titulo"></div> <div class="caixa"> <div class="preco"></div> <div class="linha"></div> <div class="escondido"></div> <div class="balao_cinza"></div> </div> </div> </body> </html>  
    • By renan mafra
      Olá pessoal,

      Eu estou criando uma página .htm simples, e quero que nessa página o texto seja de uma fonte especifica, no meu caso
      GeneveNrw incorporada à página, eu peguei a fonte genevaNrw.ttf e coloquei na pasta font-geneva-nrw, acontece que
      não está rolando..., eu tento visualizar no desktop e aparece uma fonte padrão..., eu botei no IIS e aparece uma fonte padrão,
      eu fui no mime do IIS e tá habilitado formato .ttf, eu botei no Apache e também nada, pessoal me deem um help !
       
      segue o código:

       
      <!doctype html> <html> <head> <meta charset="utf-8"> <title>Documento sem título</title> <style> @font-face { font-family: 'GenevaNrw'; src: url('font-geneva-nrw/GenevaNrw.ttf'); } .titulo{ font-family: GenevaNrw; font-weight: bold; font-size: 22px; text-decoration: underline; margin-top: 17px; margin-left: 35px; } ........ ........ </style> </head> <body> <div class="container"> <div class="topo"> <div class="topo_aba"><img src="imagens/borda-esquerda.gif" width="78" height="68" border="0"></div> <div class="topo_estrelas"><img src="imagens/estrelas-direito.gif" width="112" height="24" border="0" class="img-right"></div> </div> <div class="titulo">RECEITAS DE TORTAS</div> </div> </body> </html> Estou utilizando o Dreamweaver e no mostrar visualização do programa aparece.... só lá... do resto nada.
      abraço !!!
    • By lemao_code()
      Bom dia Galera, não sei se este é a div certa para a postagem (div sacou?)
      Mas vamos lá,
      A uns 2meses to estudando linguagens de programação, comecei pela Logica de Programação com o professor Guanabara,Agora estou em Python e HTML5 CSS e Java.
      Python estou no que o professor chama de Mundo 2, aprendendo if, elif, else, já sei operadores aritméticos etc.
      HTML5 está mais no inicio, to aprendendo a trabalha com o css para dar estilo na pagina.(Também sei Banco de Dados no MySQL)
      Mas vamos ao assunto, to procurando colegas que estejam na parecida situação como eu, para realmente estudarmos juntos.
      Certa vez o professor falou que isso ajudaria e muito, e concordo, alguém para ajudar, e alguem para você ajudar, é um crescimento e tanto, então convido-os quem tiver interesse
      duas cabeças pensam mais que 1. (ou não se a outra cabeça for de um gênio!Jobs,BIl,Einsten,Hawking esses cara kk)
      Geralmente, estudos das 4h manhã ate as 6hrs da manhã, depois a noite das 19 até a hora que os olhos sangrarem!
       
      Pode mandar msg aqui no meu perfil, estou online!
      Obrigado!
    • By geoleandro
      <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <body> <div id="dq1"style="display:block"> <br><br> Conteúdo da Div 1 </div> <br><br> <span id = "bdq2" style="display:block" onclick = "divMostrar(2)">Próximo</span><br><br> <div id="dq2"style="display:none"> Conteúdo da Div 2 </div> <br><br> <span id = "bdq3" style="display:none" onclick = "divMostrar(3)">Próximo</span><br><br> <div id="dq3"style="display:none"> Conteúdo da Div 3 </div> <br><br> <span id = "bdq4" style="display:none" onclick = "divMostrar(4)">Próximo</span><br><br> <div id="dq4"style="display:none"> <br><br> Conteúdo da Div 4 </div> <br><br> <span id = "bdq5" style="display:none" onclick = "divMostrar(5)">Próximo</span><br><br> <div id="dq5"style="display:none"> <br><br> Conteúdo da Div 5 </div> <br><br> <span id = "bdq6" style="display:none" onclick = "divMostrar(6)">Próximo</span> <div id="dq6"style="display:none"> Terminou! </div> <script> function divMostrar(qnum){ if (document.getElementById("bdq2").style.display='block'&& qnum==2) { document.getElementById("dq2").style.display='block'; document.getElementById("bdq2").style.display='none'; document.getElementById("bdq3").style.display='block'; } if (document.getElementById("bdq3").style.display='block' && qnum==3){ document.getElementById("bdq3").style.display='none'; document.getElementById("dq3").style.display='block'; document.getElementById("bdq4").style.display='block'; } if (document.getElementById("bdq4").style.display='block' && qnum==4){ document.getElementById("bdq4").style.display='none'; document.getElementById("dq4").style.display='block'; document.getElementById("bdq5").style.display='block'; } if (document.getElementById("bdq5").style.display='block' && qnum==5){ document.getElementById("bdq5").style.display='none'; document.getElementById("dq5").style.display='block'; document.getElementById("bdq6").style.display='block'; } if (document.getElementById("bdq6").style.display='block' && qnum==6){ document.getElementById("bdq6").style.display='none'; document.getElementById("dq6").style.display='block'; } } </script> </body> </head> </html> De que outro modo é possível programar para abrir essas Divs em sequência? Além do uso de IFs e else em JavaScript.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.