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

150
Views
Centre el elemento horizontalmente en el área visible en una vista de desplazamiento

Quiero centrar un elemento horizontalmente en el área visible de una cuadrícula desplazable. Entonces, el texto en la última fila aquí debe estar centrado horizontalmente dentro de la línea azul.

Esto es lo que quiero:

ingrese la descripción de la imagen aquí

Al desplazarse, debe permanecer centrado y visible:

ingrese la descripción de la imagen aquí

Esto es lo que tengo hasta ahora:

JSFiddle: https://jsfiddle.net/6v0ybnd2/24/

 <div class="wrapper"> <div class="otherContent"></div> <div class="grid" > <div class="row"> Row - this is a long text in row 1 </div> <div class="row"> Row - this is a long text in row 2 </div> <div class="row"> Row - this is a long text in row 3 </div> <div class="row-element" id="element"> this row should always be centered in the visible area </div> </div> </div>
 .wrapper { display: grid; grid-template-columns: auto auto; } .otherContent { width: 200px; background: orange; } .grid { display: grid; gap: 10px; margin: 10px; } .row { height: 20px; width: 1400px; background: lightBlue; } .row-element { height: 20px; width: 100vw; /* This width should be set to the visible */ position: sticky; text-align: center; left: 0; background: lightBlue; }
 const el = document.getElementById("element"); console.log(el.clientWidth); el.style.maxWidth = el.clientWidth;

Funciona un poco usando width: 100vw , pero solo cuando la cuadrícula ocupa todo el ancho. Por lo que entiendo, clientWidth proporciona el ancho visible de un elemento, sin embargo, establecer el width en ese realmente no funciona (¿presumiblemente porque cambia clientWidth nuevamente?

¿Alguna idea de como resolver esto? Idealmente solo en css, pero supongo que eso no es posible. También preferiría no establecer la posición a través de javaScript, ya que eso genera un retraso visible, por lo que creo que establecer el ancho y usar Sticky es el mejor enfoque.

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

0

Cambiar de position: sticky; a position: fixed; , haciéndolo de esta manera aunque necesitarás moverlo más ya que cubrirá otros elementos. Lo moví debajo de las otras filas con margin-top: 100px; , pero depende de qué tan lejos lo desee de las otras filas y .otherContent

about 4 years ago · Juan Pablo Isaza Report

0

<div class="wrapper"> <div class="otherContent"></div> <div class="grid"> <div class="row">Row - this is a long text in row 1</div> <div class="row">Row - this is a long text in row 2</div> <div class="row">Row - this is a long text in row 3</div> <div class="row-element" id="element"> <span style="position: fixed" >this row should always be centered in the visible area</span > </div> </div> </div>

Mira esto,

about 4 years ago · Juan Pablo Isaza Report

0

Creo que esto es lo que buscas.
Envuelva el texto en su propio elemento html (p. ej. <span> ), fije ese elemento y céntrelo horizontalmente como se muestra a continuación. El translateX reposiciona el elemento horizontalmente, y usar % dentro de él significa un porcentaje del ancho del elemento.

 <div class="row-element" id="element"> <span class="fixed-centered"> This row should always be centered in the visible area </span> </div>
 .fixed-centered { position: fixed; left: 50%; transform: translateX(-50%); }
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!