Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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??

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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...

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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.

 

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros 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...

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros 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>";

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por juliosonic
      Boa noite..
      Estou desenvolvendo um site de https://www.maithunatantra.com.br/ e estou com um duvida sobre o menu de navegação da versão mobile.
      O menu que tem o dropdown "Terapeutas" e "Terapias" quando clico em cima ele expande como deve ser, mas quando clico denovo para recolher os submenus
      nao acontece nada.. segue o trecho do codigo do menu..
      <div class="collapse navbar-collapse" id="navbarsExample09">             <ul class="navbar-nav ml-auto">               <li class="nav-item  active"><a class="nav-link" href="index.html">Home</a></li>               <li class="nav-item  active"><a class="nav-link" href="about-us.html">Quem Somos</a></li>               <li class="nav-item dropdown1">                     <a class="nav-link dropdown-toggle" data-toggle="dropdown1" href="#">Terapeutas</a>                     <ul class="dropdown-menu">                         <li><a class="dropdown-item" href="terapeuta-julio-cezar.html">Julio Cezar</a></li>                         <li><a class="dropdown-item" href="terapeuta-pamela-priscila.html">Pamela Priscila</a></li>                     </ul>                                    </li>               <li class="nav-item dropdown">                     <a class="nav-link dropdown-toggle" data-toggle="dropdown1" href="#">Terapias</a>                     <ul class="dropdown-menu" aria-labelledby="dropdown01">                         <li><a class="dropdown-item" href="o-que-e-reiki.html">O que é Reiki</a></li>                         <li><a class="dropdown-item" href="beneficios-reiki.html">Benefícios do Reiki</a></li>                         <li><a class="dropdown-item" href="principios-reiki.html">Princípios do Reiki</a></li>                         <li><a class="dropdown-item" href="animais-reiki.html">Reiki em Animais</a></li>                         <li><a class="dropdown-item" href="animais-reiki.html">Estudos Sobre Reiki</a></li>                         <li><a class="dropdown-item" href="terapia-massagem-tantrica.html">Terapia Tântrica</a></li>                     </ul>               </li>               <li class="nav-item  active"><a class="nav-link" href="blog.html">Blog</a></li>                <li class="nav-item"><a class="nav-link" href="contato.html">Contato</a></li>             </ul>         </div>  
      Massagem Tantrica em Curitiba
      Tantra Curitiba
      Massagem Tântrica
      Tantra
      Julio Darshan

      Obrigado
      Att
      Julio Cezar
       
       
       
    • Por Felipe Medeiros
      Bom, criei um tema filho e o que aprendi é que para alterar qualquer coisa do tema filho eu preciso copiar o arquivo do tema pai o colocar dentro da pasta do tema filho.
       
      No meu caso, estou usando o tema "Astra" bem famosinho. O arquivo css que quero modificar não está dentro da pasta do tema pai, está em "wp-content/uploads/uag-plugin/assets/0/uag-css-10.css" sendo que o diretorio do tema pai é "wp-content/themes/Astra"
       
      O problema é o seguinte, preciso modificar a barra de pesquisa da pagina inicial, porem o inspetor de elementos do chrome ta acusando que esse arquivo é o responsavel por estilizar a barra de pesquisa. Será que isso tem a ver com "Cache de objetos", eu sei que o plugin liteSpeed Cache, AMP, Rank Math, todos eles tem essas paradas de criar arquivos css e js para tornar o site mais rapido.
    • Por Alessandro Bodão
      Fala galerinha, 
       
      Tenho um container com um título (h1) no cabeçalho do meu site, esse container ocupa metade da tela (50vw), e eu gostaria que esse título ocupasse toda a largura desse container, independente do seu tamanho ou do tamanho do monitor, de forma com que a palavra tenha exactamente o mesmo tamanho do container (vou anexar uma foto de exemplo). Já tentei todos os valores pra essa h1, como % e vw... mas nada parece fazer sentido.
       
       

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.