Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

257
Views
Oculte todo el bloque de texto cuando ya no quepa

Mi texto parece ocultar por defecto piezas particulares que no encajan en un div. Me gustaría que todo el bloque desapareciera una vez que ya no quepa.

¿Hay alguna manera de hacer esto?

Aquí hay una aplicación de muestra de lo que tengo actualmente:

 const App = () => { return ( <div className='container'> <p className='text'> If you don't fit you need to be hidden. If you don't fit you need to be hidden.If you don't fit you need to be hidden.If you don't fit you need to be hidden.If you don't fit you need to be hidden.If you don't fit you need to be hidden.If you don't fit you need to be hidden.If you don't fit you need to be hidden.If you don't fit you need to be hidden.If you don't fit you need to be hidden.If you don't fit you need to be hidden.If you don't fit you need to be hidden.If you don't fit you need to be hidden.If you don't fit you need to be hidden.If you don't fit you need to be hidden.If you don't fit you need to be hidden.</p> </div> ) } ReactDOM.render( <App />, document.getElementById('app') );
 .container { border: 1px solid red; height: 150px; width: 150px; overflow: hidden; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.8.0/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.0/umd/react-dom.production.min.js"></script> <div id="app"></div>

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

TL; DR: ejemplo de trabajo aquí .


No creo que haya una forma css de hacer esto, pero como estás usando React, puedes aprovechar las referencias y calcular el tamaño del elemento.

1. Obtenga una referencia al elemento

Tenga en cuenta que no puede usar un useRef estándar (hasta donde yo sé), porque los cambios en estos no activan una nueva representación, por lo que React no sabrá cuándo se desborda su contenedor. En su lugar, puede usar una referencia de devolución de llamada y almacenarla en el estado.

 const [textRef, setTextRef] = useState(null); ... <div ref={(newRef) => setTextRef(newRef)} className="container"> ... </div>

2. Comprueba si se desborda

Ahora que tiene una referencia al elemento, puede calcular si se desborda o no comparando las propiedades scrollHeight y offsetHeight .

 const overflows = textRef.scrollHeight > textRef.offsetHeight;

3. Almacenar información en estado

Tienes que hacer esto dinámicamente cuando el elemento cambia, así que colócalo en un useEffect con textRef como una dependencia. Luego almacene la propiedad "desbordamientos" en el estado para usarla más tarde.

 const [overflows, setOverflows] = useState(false); useEffect(() => { if (textRef) { const overflows = textRef.scrollHeight > textRef.offsetHeight; setOverflows(overflows); } }, [textRef]);

4. Renderizar condicionalmente

Ahora que sabe si un elemento se desborda y tiene esa información en el estado, simplemente puede representar el elemento de forma condicional.

 <div ref={(newRef) => setTextRef(newRef)} className="container"> {!overflows && <p className="text">If you don't fit you need to be hidden...</p>} </div>

Mire este ejemplo de trabajo donde puede ver que un elemento se muestra porque tiene menos texto y cabe, mientras que el otro está oculto porque se desborda.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!