Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

106
Visualizações
JavaScript, CSS, obtener altura dinámica de los padres

Estoy creando un div que tiene 2 div adentro. El primer div proviene de una función llamada borderDiv() que devuelve un div que proporciona algunas clases según los argumentos.

 allData.map(data => { const isTwoRows = data.textToRender.length <= 50 && data.textToRender.length > 30; const isThreeRows = data.textToRender.length > 50; return (<div className="parent-border"> {borderDiv(isTwoRows, isThreeRows)} <div> {data.textToRender} </div>< /div>); })

Cuando recibe isTwoRows el primer div dentro tiene clases que asignan una height de 20px. Cuando reciba isThreeRows la altura será de 40px.

Funciona bien al dar clases, por lo que la función borderDiv() funciona bien, pero mi problema es establecer correctamente el valor para 2 o 3 filas.

En este momento solo estoy contando caracteres de la cadena dada. Si es superior a 50, diré que es isThreeRows o si es ]30, 50] será isTwoRows .

Quiero preguntar cómo podría establecer de manera correcta la cantidad de filas de texto que tiene el div padre (el div con clase parent-border ). O, en otras palabras, obtenga la altura que representó el div principal de borderDiv . Al obtener esa altura, podría dar como argumento a borderDiv() y luego elegir la clase correcta.

Intenté simplemente configurar algo como:

 // in css: .border-div { height: inherit; } <div className="parent-border"> <div className="border-div"> // This will be the div rendered <div>{data.textToRender}</div> <(div>

Espera heredar la altura dinámica de "borde principal", pero esta clase no tiene una altura específica, ya que puede cambiar según el registro del texto representado. Ejemplo de textos renderizados:

 "a short text" <-- 1 row, so border-div height will be 20px "a longer text that needs to me adapted" <--- 2 rows, so border div should be 40px

Cualquier pista por favor.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Hay una función integrada llamada getBoundingClientRect , que nos permite hacer exactamente lo que desea: obtener el ancho y el alto actuales de un elemento.

 const { width, height } = $el.getBoundingClientRect(); // do something, eg (made up numbers) const isTwoRows = height > 30 && height < 60; const isThreeRows = height > 60 && height < 90;

Soporte de navegador impresionante.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda