Tengo un sitio web aquí .
Visto en un navegador de escritorio, la barra de menú negra se extiende correctamente solo hasta el borde de la ventana, ya que body
tiene overflow-x:hidden
.
En cualquier navegador móvil, ya sea Android o iOS, la barra de menú negra muestra su ancho completo, lo que trae espacios en blanco a la derecha de la página. Por lo que puedo decir, este espacio en blanco ni siquiera es parte de las etiquetas html
o body
.
Incluso si configuro la ventana gráfica a un ancho específico en <head>
:
<meta name="viewport" content="width=1100, initial-scale=1">
El sitio se expande hasta los 1100 px pero aún tiene el espacio en blanco más allá de los 1100.
¿Qué me estoy perdiendo? ¿Cómo mantengo la ventana gráfica a 1100 y corte el desbordamiento?
css
overflow
viewport
mobile-browser
Indigenidad
fuente
fuente
Respuestas:
La creación de un div de contenedor del sitio dentro
<body>
y la aplicaciónoverflow-x:hidden
del contenedor en lugar del<body>
o<html>
solucionó el problema.Parece que los navegadores que analizan la
<meta name="viewport">
etiqueta simplemente ignoran losoverflow
atributos en las etiquetashtml
ybody
.Nota: También es posible que deba agregar
position: relative
al contenedor div.fuente
overflow
ahidden
, tenía que configurar elposition
afixed
...overflow-x: hidden
todavía no funciona para mí incluso después de agregar esta metaetiqueta. ¿Podría por favor compartir un enlace a su sitio web donde funciona?position:relative
funciona.tratar
en lugar de solo
fuente
overflow
cualquier cosahtml
y / obody
cualquier combinación no resolvió el problema.height:100%;
, de lo contrario, el desplazamiento vertical no funcionaría correctamente en páginas con imágenes de carga (lo que hace que la página crezca en altura).El comentario de VictorS sobre la respuesta aceptada merece ser su propia respuesta porque es una solución muy elegante que realmente funciona. Y agregaré un poco a su utilidad.
Victor nota que agrega
position:fixed
obras.Y de hecho lo hace. Sin embargo, también tiene un ligero efecto secundario de desplazarse esencialmente hacia la parte superior.
position:absolute
resuelve esto, pero reintroduce la capacidad de desplazarse en el móvil.Si conoce su ventana gráfica ( mi complemento para agregar la ventana gráfica a
<body>
) puede simplemente agregar una palanca CSS paraposition
.También agrego esto para evitar que la página subyacente salte hacia la izquierda / derecha al mostrar / ocultar modales.
fuente
position:fixed or absolute
perturbe sus posiciones también. No adecuado / trabajando en mi caso :(Esta es la solución más simple para resolver el desplazamiento horizontal en Safari.
fuente
table-responsive
Bug. Esta fue la solución.Como dice @Indigenuity, esto parece ser causado por navegadores que analizan la
<meta name="viewport">
etiqueta.Para resolver este problema en la fuente, intente lo siguiente:
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
.En mis pruebas, esto evita que el usuario se aleje para ver el contenido desbordado y, como resultado, también evita el desplazamiento / desplazamiento hacia él.
fuente
initial-scale=1
a una metaetiqueta de vista existente realmente soluciona el problema. ¡Gracias!minimum-scale=1
que lo arreglófunciona en iOS9
fuente
Mantenga la ventana gráfica intacta:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
Suponiendo que le gustaría lograr el efecto de una barra negra continua en el lado derecho:
#menubar
no debe exceder el 100% , ajuste el radio del borde de manera que el lado derecho esté al cuadrado y ajuste el relleno para que se extienda un poco más hacia la derecha . Modifique lo siguiente a su#menubar
:Ajustando
padding
a 10px, por supuesto, deja el menú izquierdo al borde de la barra, puede colocar los 40px restantes a cada uno de losli
, 20px en cada lado izquierdo y derecho:Cuando cambie el tamaño del navegador más pequeño, aún encontrará el fondo blanco: coloque la textura de fondo en lugar de su div a
body
. O, como alternativa, ajuste el ancho del menú de navegación del 100% al valor más bajo mediante consultas multimedia. Se deben realizar muchos ajustes en su código para crear un diseño adecuado, no estoy seguro de qué piensa hacer, pero el código anterior solucionará de alguna manera su barra desbordante.fuente
box-sizing: border-box;
, puede agregar relleno a una división de 100% de ancho.Esto funcionó para mí después de agregar también
position: relative
al contenedor.fuente
overflow: hidden
lugar deoverflow-x: hidden
. Funciona en dispositivos móviles Safari, Chrome, IE11 en OSX y Win.Agregar un contenedor
<div>
alrededor de la totalidad de su contenido funcionará. Mientras semánticamente "icky", agregué un div con una clase de overflowWrap justo dentro de labody
etiqueta y luego establecí configurar mi CSS de esta manera:¡Puede ser excesivo ahora, pero funciona como un encanto!
fuente
Encontré el mismo problema con los dispositivos Android pero no con los dispositivos iOS. Gestionado para resolver especificando posición: relativo en el div externo de los elementos posicionados absolutamente (con desbordamiento: oculto para div externo)
fuente
Ninguna solución única anterior funcionó para mí, tuve que mezclarlos y solucioné el problema también en dispositivos más antiguos (iphone 3).
Primero, tuve que envolver el contenido html en un div externo:
Luego tuve que aplicar un desbordamiento oculto al contenedor, porque overflow-x no funcionaba:
y esto solucionó el problema.
fuente
Resolví el problema usando overflow-x: hidden; como sigue
la estructura es la siguiente
1st div end_screen >> inside it >> end_screen_2(div) >> inside it >> end_screen_2.
'end_screen is the wrapper of end_screen_1 and end_screen_2 div's
fuente
Como dijo subarachnid, overflow-x oculto para el cuerpo y html funcionó Aquí está el ejemplo de trabajo
Enlace
fuente
Llevo unas horas trabajando en esto, probando varias combinaciones de cosas de esta y otras páginas. Al final, lo que funcionó para mí fue hacer un div de envoltorio de sitio, como se sugiere en la respuesta aceptada, pero establecer ambos desbordamientos en ocultos en lugar de solo el desbordamiento x. Si dejo el desbordamiento-y en el desplazamiento, termino con una página que solo se desplaza verticalmente unos pocos píxeles y luego se detiene.
Solo esto fue suficiente, sin establecer nada en el cuerpo o elementos html.
fuente
Intenté muchas formas a partir de las respuestas en este tema, la mayoría funciona, pero obtuve algunos efectos secundarios, como si uso overflow-x
body,html
, podría ralentizar / congelar la página cuando los usuarios se desplazan hacia abajo en el móvil.el uso
position: fixed
en wrapper / div dentro del cuerpo también es bueno, pero cuando tengo un menú y uso Javascript, haga clic en el desplazamiento animado a alguna sección, no funciona.Entonces, decidí usar
touch-action: pan-y pinch-zoom
en wrapper / div dentro del cuerpo. Problema resuelto.fuente
La única forma de solucionar este problema para mi modal de arranque (que contiene un formulario) era agregar el siguiente código a mi CSS:
fuente