- Qulqulka-y controla el desbordamiento toosan: recorta, desplaza o muestra el contenido.
- Si otomaatig ah / duuduub / qarsoon crean contexto de formateo; clip recorta dembi ogolaansho desplazamiento.
- Para que surta efecto, qeex altura (o block-size) y combina con overflow-x según convenga.
- Atiende accesibilidad: foco por teclado, tabindex y doors/nombres ARIA apropiados.
Xakamaynta kontoroolka el contenido cuando se sale del contenedor es clave para un diseño web limpio y la isticmaali karo; iyo terreno, qulqulka-y en CSS manda sobre el desbordamiento toosan, decidiendo si recortar, mostrar barras de desplazamiento o dejar que el contenido se asome fuera del cuadro.
Mas allá de lo básico, hay macies que Cambian por completo el resultado: ciertos valores activan un nuevo contexto de formateo, algunos allowen desplazamiento con JavaScript iyo otros lo bloquean, y hasta hay efectos colaterales que pueden provocar que un contenedor pase a ser “scrollable” iyo ambos ejes si no se configura bien.
¿Qué es qulqulka-y para qué sirve?
Hantida qulqul-y indica al navegador qué hacer con el contenido que rebasa el elemento por su borde ka sarraysa e hoos. Cuando un bloque tiene más contenido del que cabe en su altura definida (o máxima), este ajuste go'aan si el contenido se recorta, se hace desplazable o se deja muuqata fuera del recuadro.
Diiwaanka Conviene su relación con su “hermana” horizontal: overflow-x controla los laterales izquierdo y derecho, mientras que overflow-y se centra en arriba y abajo. Y, por supuesto, la propiedad abreviada ka buuxa ogolaane etablecer ambos ejes a la vez con uno o dos valores.
Sintaxis y valores admitidos
Si toos ah, qulqulka-y acepta los valores qarsoon, rogrog, auto y la arki karo; desde especificaciones modernas también existe clip. Puedes declararla sida:
/* CSS */
selector {
overflow-y: hidden | scroll | auto | visible | clip;
}
Si usas la abreviatura ka buuxa, puedes pasar aad u xun. Con un valor, se aplica a ambos ejes; con dos valores, el primero corresponde a qulqul-x (horizontal) y el segundo a qulqul-y (toos ah):
/* Un solo valor, aplica a X e Y */
.container { overflow: auto; }
/* Dos valores: overflow-x overflow-y */
.panel { overflow: hidden auto; }
Significado detalado de cada valor
Es fácil quedarse en la superficie, pero cada palabra clave encierra un comportamiento específico, iyo algunos incluyen reglas de accesibilidad y rendimiento muhim ah.
-
muuqda (valor por defecto): el contenido no se recorta y puede sobresalir más allá del área de padding del elemento. El elemento no se convierte en contenedor de desplazamiento; útil si no quieres limitar el contenido, pero puede provocar solapamientos con otros components.
-
qarsoon: el contenido se recorta en el borde del padding; ma aha muestran barras de desplazamiento. El contenido sigue existiendo en el flujo interno, pero no es muuqata fuera del área. Aunque el usuario no pueda hacer Scroll buugaag, sí puede desplazarse de forma programática (por ejemplo, con scrollTop o desplazando el foco), de modo que el elemento se considera contenedor de desplazamiento.
-
clip: recorta el contenido en el cidhifka clip buuxdhaafay, qeexid por
overflow-clip-margin. A diferencia de qarsoon, ma ogolaanayo desplazamiento, ni manual ni programático. No crea un nuevo contexto de formateo por sí mismo; si necesitas aislar el flujo (como haría auto/buuqan/qarsoon), combinalo condisplay: flow-root. Si aad u ogaato waxa la yiraahdo "resquicios". -
laab: el contenido se recorta y siempre se muestran barras de desplazamiento en el eje al que aplique, haya o no desbordamiento dhabta ah. Esta constancia evita que las barras aparezcan y desaparezcan cuando el contenido fluctúa; toban en cuenta que, aun así, al imprimir puede que el contenido desbordado se incluya según el motor de impresión.
-
baabuur: duuduub la mid ah, pero solo añade barras cuando son necesarias. Si el contenido cabe, el resultado visual se aproxima a muuqata, pero el elemento ya actúa como contenedor de desplazamiento y además etablece un nuevo contexto de formateo por motivos de rendimiento y reflujo con elementos flotantes.
Matices esenciales que cambian el resultado
Hay cinco detalles que no conviene pasar por alto y que, en la practica, marcan la diferencia: las dimensiones, el contexto de formateo, la interacción entre ejes, la impresión y el soporte desplazamiento programático.
Para que el desbordamiento toosan tenga efecto dhabta ah, el bloque debe tener altura (dhererka) ama altura máxima (dhererka ugu badan) qeexida; si trabajas en términos lógicos, USA cabbirka xannibaadda ama cabbirka-max-block-cabbirka. Para escenarios dinámicos, aprende a obtener la altura de un elemento. En el eje horizontal ocurre lo propio con ballac/ballaca ugu badan o cabbirka-line-xajmiga/xajmiga-inline-ka ugu badan; otra opción para forzar el desbordamiento en línea es meel cad: nowrap.
Al elegir cualquier valor distinto de la arki karo iyo clip para qulqulka/ qulqulka-y, el elemento crea un nuevo contexto de formateo de bloque. Esto evita que, por ejemplo, un float vecino reempaquete el contenido en cada paso de scroll, algo que degradaría el rendimiento al desplazarse.
Hay también reglas de interacción entre ejes que sorprenden la primera vez: si etableces muuqda en un eje y en el otro usas un valor que no bad la arki karo ni clip, ese muuqda actúa como auto. Asimismo, si pones clip iyo un eje y en el otro ma la arki karo ni clip, el clip se comporta como qarsoon; conviene conocerlo para evitar resultsados inesperados.
En la práctica diria, mucha gente observa que al aplicar rog o auto en un eje, el elemento pasa a ser un weel duudduuban y ciertas acciones (como pseudo-elementos que sobresalen) pueden activar también el desplazamiento en el otro eje si no se controla bien. Es un comportamiento coherente con la especificación y los motores de renderizado actuales.
Ejemplo rápido: fijar la altura y activar el duuduub oo toosan
Una demostración típica consiste en acotar la altura de un bloque de texto y permitir que el exceso se desplace verticalmente. Sida caadiga ah, qulqul-y: baabuur añade la barra solo cuando haga falta.
<div class="caja">
<p>Texto largo...</p>
<p>Más texto...</p>
</div>
.caja {
max-height: 220px;
padding: 12px;
border: 1px solid #ccc;
overflow-y: auto; /* barra vertical solo si es necesaria */
overflow-x: hidden; /* evitamos scroll horizontal accidental */
}
Fijate en el detalle: qulqul-x: qarsoon complementa qulqul-y para impedir que vibraciones de layout, sombras o pseudo-elementos provoquen una barra horizontal indeseada.
Xakamaynta iyo desplazamiento ee JavaScript
Cuando el contenedor es desplazable (auto, rog o incluso qarsoon), puedes mover el contenido por codigo con propiedades y métodos estándar como Element.scrollTop y Element.scrollTo(). Esto allowe, por ejemplo, llevar el foco visual a un ancla inside o simular un salto al final de la lista.
// Desplazar 200px hacia abajo
const panel = document.querySelector('.panel');
panel.scrollTop = 200;
// O ir con precisión a una posición
panel.scrollTo({ top: 0, behavior: 'smooth' });
Hay una excepción explícita: si USA buuxdhaafay: clip, el agente de usuario ma jiro ogolaansho desplazamiento programático; el contenido fuera del borde de clip no es accesible ni con el ratón ni desde JavaScript.
Accesibilidad: teclado, foco y lectores de pantalla
Waa wax aan la aqbali karin siempre es Focuseable por teclado, así que el usuario que navega sin ratón puede quedarse sin forma desplazarla. En Firefox iyo Chrome 132 ama ka sarreeya, los contenedores de rogrog se hacen focuseables por defecto; iyo otros navegadores, iyo tabindex="0" al contenedor.
Ahora bien, si soo bandhigay ese tab joojinta a ciegas, un lector de pantalla puede llegar a la región sin contexto. Para mitigarlo, asigna un rol ARIA adecuado (tusaale ahaan, role="region") y proporciona un nombre la heli karo con aria-label o aria-labelledby. Un etiquetado claro mejora la navegación asistida sin sacrificar usabilidad.
Qulqulka-x y qulqul-y: cómo se combinan
La propiedad abreviada ka buuxa ogolaansho etablecer ambos ejes a la vez con uno o dos valores; cuando especificas dos, el primero es para qulqul-x iyo tan labaadna qulqul-y. Esto facilita casos como evitar la barra horizontal a la vez que ogolaane si toos ah u rog.
/* Evita barra horizontal, permite scroll vertical si hace falta */
.contenedor { overflow: hidden auto; }
Sida loo sameeyo recordatori rápido, los valores disponibles para configurar el desbordamiento son: la arki karo, qarsoon, clip, laab y baabuur. Nivel de ejes, qulqul-x gobierna el flujo horizontal y qulqul-y el toosan, y puedes combinarlos según convenga.
"Clip gees" iyo qulqul-clip-margin
Hadaad doorato qulqulka: clip (o solo en el eje Y), el recorte se realiza en el denominado borde de clip desbordamiento. Ese borde puede extenderse más allá del padding gracias a overflow-clip-margin, que acepta una dheer para dejar “aire” antes de recortar.
.tarjeta {
overflow-y: clip; /* cortar sin permitir scroll */
overflow-clip-margin: 8px; /* recorta 8px por fuera del padding */
}
Recuerda que clip no crea un nuevo contexto de formateo. Si necesitas ese aislamiento (sida ejemplo, para gestionar floats o contener márgenes colapsados), combina clip con bandhigay: socodka-root y así consigues el mismo efecto de contención que aportan auto/scroll/hidden.
Cuándo necesitas dimensiones explícitas
Para que el recorte o el Scroll aparezcan de verdad, el elemento necesita una altura etablecida (dhererka o max-height) en el eje de bloque, o su equivalente lógico cabbir-cabbir/max-block-cabbir; si no, el contenedor crecerá con el contenido y el desbordamiento no se activará.
Si toos ah u qaabeeya (por ejemplo, carouseles), qeex ballac/ballaca ugu badan o cabbirka-line-xajmiga/xajmiga-inline-ka ugu badan para forzar el desbordamiento en el eje X; también puedes usar meel cad: nowrap para impedir los saltos de línea iyo provocar que el contenido exceda el ancho disponible.
Evitar la barra horizontal por pseudo-elementos ama sombras
Un caso real muy caado: un pseudo-elemento ::ka dib que flota hacia la derecha, o una sombra alargada, sobrepasa el contenedor y activa la barra horizontal en un elemento que ya tiene qulqulka-y. Esto sucede porque, al convertirse en contenedor de scroll, el motor considera el área desbordada para el eje opuesto.
Xalalka caadiga ah: aplica overflow-x: qarsoon en el contenedor desplazable; controla el tamaño y posición del pseudo-elemento (p. ej., con isbeddel en lugar de posición absoluta si procede); o acota con clip/clip-dariiqa si buscas un recorte tajante. Cualquiera de estas estrategias evita el rogrog toosan indeseado sin sacrificar el toosan.
Demostración de resultados con cada valor
El siguiente bloque muestra cómo cambian la visibilidad y las barras con los distintos valores de overflow-y, todos con la misma altura máxima para forzar el desbordamiento toosan:
<div class="demo visible">Contenido largo...</div>
<div class="demo hidden">Contenido largo...</div>
<div class="demo clip">Contenido largo...</div>
<div class="demo scroll">Contenido largo...</div>
<div class="demo auto">Contenido largo...</div>
.demo {
max-height: 140px;
padding: 10px;
margin-bottom: 12px;
border: 1px solid #bbb;
}
.visible { overflow-y: visible; }
.hidden { overflow-y: hidden; }
.clip { overflow-y: clip; }
.scroll { overflow-y: scroll; }
.auto { overflow-y: auto; }
U fiirso taas u rog siempre muestra la barra toosan, mientras que auto solo lo hace cuando el texto excede la altura. En qarsoon, el contenido sobrante no se ve pero sigue estando ahí; en clip, directamente no existe una vía de desplazamiento, ni si quiera con código.
Impresión y contenido desbordado
Un detalle menos conocido: con buuxdhaafay: duuduub, algunos motores de impresión pueden acabar imprimiendo el contenido desbordado aunque no quepa en pantalla. Si aad uga fikirto dhoofinta PDF o papel, dooro y go'aansato si prefieres qarsoon ama xataa clip para evitar salidas inesperadas.
Compatibilidad entre navegadores
Guryaha qulqulaya, qulqulaya-x iyo qulqul-y gozan de soporte sólido en los navegadores modernos desde hace muchas versiones. El valor clip y su compañera overflow-clip-margin pertenecen a especificaciones más recientes, pero su adopción dhabta ah es amplia y crece con cada lanzamiento; comprueba las matrices de compatibilidad si apuntas a entornos antiguos.
En cuanto al foco de contenedores desplazables, recuerda la peculiaridad: Firefox iyo Chrome 132+ los hacen focuseables por defecto; para el resto, iyo tabindex=”0″ manualmente y un rol/nombre la heli karo para una experiencia consistente.
Buenas practicas de maquetación
Maya todo es poner una barra y listo: combina propiedades para prevenir desplazamientos indeseados y ganar en estabilidad muuqaal. Aquí van unas pautas que funcionan muy bien en producción.
-
Qeex cabbirradaDhererka dembiga/dhererka-max o block-size, el contenedor crecerá y no verás el efecto de overflow-y.
-
Añade overflow-x: qarsoon Cuando waxay isticmaashaa qulqulka-y, salvo que necesites suunka-iyo-lakaynta toosan. Evitas barras laterales provocadas por sombras, bordes ama pseudo-elementos.
-
Si otomaatig ah u dooro duub si quieres que la barra aparezca solo cuando haga falta, y scroll si buscas dimensiones etables de layout sin “saltos” por aparición/desaparición de scrollbars.
-
Usa clip cuando quieras recorte duro (sin rutas de desplazamiento), iyo combínalo con bandhigay: flow-root si necesitas contención del flujo.
Relación con el DOM iyo APIs útiles
En JavaScript, el DOM expone buuxdhaafay como propiedad de estilo, iyo puedes inspeccionar/ajustar el estado del elemento: element.style.overflowY y getComputedStyle(element).overflowY. Además, para desplazar contenidos ee Maraykanka korka riix y u rogto(), salvo con clip donde no hay scroll de ningún tipo.
const panel = document.querySelector('.panel');
panel.style.overflowY = 'auto';
if (getComputedStyle(panel).overflowY !== 'visible') {
panel.scrollTo({ top: panel.scrollHeight, behavior: 'smooth' });
}
Si trabajas con enlaces internos, recuerda que tabular hacia un elemento oculto dentro de un contenedor qarsoon/auto puede hacer que el navegador si toos ah u rog para ponerlo en vista; es una forma legítima desplazamiento programático, útil para mejorar la navegación con teclado.
Tabla maskaxda rápida de opciones
Si aad u hesho macluumaad dheeraad ah: la arki karo deja que todo sobresalga; qarsoon recorta y allowe rogrogid programático; clip dib-u-dejin maya ogolaansho; laab recorta pero siempre muestra barras; y baabuur solo muestra barras cuando procede. Y recuerda que lama arki karo/clip crea contexto de formateo, para rendimiento con sabbaynaya.
Ejemplos de combinación por ejes
Waa maxay patrones que verás joogto ah: ogolaanshaha u rogrog toosan sin barra horizontal, y recortar en un eje con clip mientras el otro se desplaza automáticamente.
/* Scroll vertical, sin horizontal */
.lista {
max-height: 300px;
overflow-x: hidden;
overflow-y: auto;
}
/* Recorte duro en X, desplazamiento automático en Y */
.panel {
overflow-x: clip;
overflow-y: auto;
display: flow-root; /* contén el flujo si lo necesitas */
}
Toban presentes las reglas de interacción: si un eje usa un valor distinto de muuqata/clip y el otro pone muuqata, ese muuqata se wiish iyo auto. Con clip sucede algo parecido: si el otro eje no es muuqata ni clip, el clip actúa como qarsoon.
Kiisaska isticmaalka caadiga ah
In interfaces casri ah, qulqul-y es imprescindible para chatboxes, paneles de filtros, menús largos, logs o listados iyo altura acotada. Sida loo buuxiyo con cabeceras pegajosas y footers dentro del contenedor, y suele acompañarse de qulqul-x: qarsoon para evitar barras laterales.
En diseños con tarjetas o modales, puedes alternar entre baabuur (para no mostrar la barra si no hace falta) y laab (para estabilizar el ancho cuando aparecería la barra durante la carga). Si el modal debe recortar partes decorativas, clip evita interacciones y ahorra cálculos.
Qaladaadka caadiga ah iyo sida looga fogaado
El fallo más repetido es Declarar qulqulka-y sin altura y esperar una barra que nunca llega; qeex dhererka o dhererka-sare/cabirka-boolka. Sida caadiga ah: siempre valora qulqulka-x en paralelo, sobre todo si usas sombras o pseudo-elementos.
Un tercero es ma tixgelin helitaanka: contenedores desplazables sin foco de teclado o sin nombre accesible complican la vida a usuarios con lector de pantalla. Añade tabindex, doorka y aria-calaamadaha cuando no sea focuseable por defecto.
Recursos relacionados
Si quieres ampliar, revisa el tutorial general de dib u eegis iyo CSS y la referencia del DOM si xad dhaaf ah iyo elementos. Estas páginas cubren desde fundamentos hasta peculiaridades finas de implementación y compatibilidad.
Dulqulka Dominar-y implic entender qué recorta, cuándo se desplaza, cómo interactúa con el eje opuesto y qué efecto tiene en el contexto de formateo; con las pautas de dimensiones, accesibilidad iyo combinación con overflow-x, es sencillo lograr paneles fluidos, sin barras imprevistas y con un desplazamiento suave tanto para usuarios como para scripts.