Supongamos que tiene algo de estilo y el marcado:
ul
{
white-space: nowrap;
overflow-x: visible;
overflow-y: hidden;
/* added width so it would work in the snippet */
width: 100px;
}
li
{
display: inline-block;
}
<div>
<ul>
<li>1</li> <li>2</li> <li>3</li>
<li>4</li> <li>5</li> <li>6</li>
<li>7</li> <li>8</li> <li>9</li>
<li>1</li> <li>2</li> <li>3</li>
<li>4</li> <li>5</li> <li>6</li>
<li>7</li> <li>8</li> <li>9</li>
<li>1</li> <li>2</li> <li>3</li>
<li>4</li> <li>5</li> <li>6</li>
<li>7</li> <li>8</li> <li>9</li>
</ul>
</div>
Cuando ves esto. El <ul>tiene una barra de desplazamiento en la parte inferior, aunque he especificado los valores visibles y ocultas para el desbordamiento x / y.
(observado en Chrome 11 y opera (?))
Supongo que debe haber alguna especificación de w3c o algo que indique que esto suceda, pero por mi vida no puedo entender por qué.
ACTUALIZACIÓN: - Encontré una manera de lograr el mismo resultado agregando otro elemento envuelto alrededor del ul. Echale un vistazo.

overflow-x hidden;, elimina el desplazamiento, pero como necesito los elementos li para ocultar el borde en la parte inferior, da el efecto discontinuo deseado. No entiendo por quéoverflow-x: visiblecrea una barra de desplazamiento. No debería afaik.overflow: hidden;y el niño insertado alrededor del<ul>seroverflow: visible.Respuestas:
Después de algunas búsquedas serias, parece que encontré la respuesta a mi pregunta:
de: http://www.brunildo.org/test/Overflowxy2.html
También la especificación W3C dice:
Version corta:
Si está utilizando
visibleunooverflow-xu otrooverflow-yy algo distintovisibleal otro, elvisiblevalor se interpreta comoauto.fuente
overflow-x:visibleduranteoverflow-y:hiddensin un corte del padre / hijo? Bastante litera, en mi opinión.overflow-y: visible. Boo CSS!otro truco barato, que parece hacer el truco:
style="padding-bottom: 250px; margin-bottom: -250px;"en el elemento donde el desbordamiento vertical se está cortando, con la250representación de tantos píxeles como sea necesario para su menú desplegable, etc.fuente
position: relativeno era posible quitar o usar envoltorios, esta era la única solución que funcionaba, aunque también requería agregar muchos márgenes feos a los elementos secundarios dentro del elemento que quería configuraroverflow-x: hiddenpara compensar el hacky relleno. Sin embargo, esto me salvó, ¡así que gracias!Originalmente encontré una forma de CSS para evitar esto cuando uso el complemento Cycle jQuery. Cycle usa JavaScript para configurar mi diapositiva
overflow: hidden, por lo que cuando configuro mis imágenes para quewidth: 100%las imágenes se vean cortadas verticalmente, las obligué a que sean visibles!importanty eviten mostrar la animación de diapositivas fuera de la caja que configuréoverflow: hiddenen el contenedor div del diapositiva. Espero que funcione para ti.ACTUALIZACIÓN - Nueva solución:
Problema original -> http://jsfiddle.net/xMddf/1/ (Incluso si lo uso
overflow-y: visiblese convierte en "auto" y en realidad "scroll").La nueva solución -> http://jsfiddle.net/xMddf/2/ (Encontré una solución usando un contenedor wrap para aplicar
overflow-xyoverflow-ypara diferentes elementos DOM como James Khoury aconsejó sobre el problema de combinarvisibleyhiddenpara un solo elemento DOM).fuente
overflow-x:visible;yoverflow-y:hidden. No de la otra manera.overflow-xe-y: violín actualizada .Me he encontrado con este problema al intentar crear una barra lateral de posición fija con contenido desplazable verticalmente y elementos secundarios anidados en posición absoluta que se mostrarán fuera de los límites de la barra lateral .
Mi enfoque consistía en aplicar por separado:
overflow: visiblepropiedad para el elemento de la barra lateraloverflow-y: autopropiedad del envoltorio interno de la barra lateralPor favor, consulte el ejemplo a continuación o un código en línea .
fuente
autolugar dehidden.positionUtilicé el
content+wrapperenfoque ... pero hice algo diferente a lo mencionado hasta ahora: me aseguré de que los límites de mi envoltorio NO se alinearan con los límites del contenido en la dirección en la que quería ser visible .Nota importante: Fue bastante fácil de conseguir el
content+wrapper, same-boundsenfoque de trabajo en un navegador u otro dependiendo de varias combinaciones de CSSposition,overflow-*etc ... pero nunca podría utilizar este enfoque para conseguir que todo correcto (Edge, Chrome, Safari. ..).Pero cuando tuve algo como:
... todos los navegadores estaban contentos.
fuente
Ahora hay una nueva forma de abordar este problema : si elimina la posición: relativa del contenedor que necesita tener el desbordamiento-y visible, puede tener desbordamiento-y visible y desbordamiento-x oculto, y viceversa (tener desbordamiento- x visible y overflow-y oculto, solo asegúrese de que el contenedor con la propiedad visible no esté relativamente posicionado).
Vea esta publicación de CSS Tricks para más detalles: funcionó para mí: https://css-tricks.com/popping-hidden-overflow/
fuente