Haciendo siempre visible la barra de desplazamiento principal


¿Qué CSS se requiere para que la barra de desplazamiento vertical del navegador permanezca visible cuando un usuario visita una página web (cuando la página no tiene suficiente contenido para activar la barra de desplazamiento)?

 152
Author: Dave Jarvis, 2009-07-29

10 answers

html {
    overflow: -moz-scrollbars-vertical; 
    overflow-y: scroll;
}

Esto hace que la barra de desplazamiento siempre sea visible y solo esté activa cuando sea necesario.

Actualización: Si lo anterior no funciona, solo use este mayo.

html {
    overflow-y:scroll;
}
 285
Author: Corv1nus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-26 21:31:37
html {
    overflow-y: scroll;
}

Es eso lo que quieres?

Desafortunadamente, Opera 9.64 parece ignorar esa declaración CSS cuando se aplica a HTML o BODY, aunque funciona para otros elementos a nivel de bloque como DIV.

 23
Author: Ionuț G. Stan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-26 21:32:05

Las cosas han cambiado en los últimos años. Las respuestas anteriores ya no son válidas en todos los casos. Apple está empujando barras de desplazamiento que desaparecen por todas partes. Safari, Chrome e incluso Firefox en macOS (e iOS) solo muestran barras de desplazamiento cuando realmente se desplaza - no se sobre Windows/IE actual. Sin embargo, hay formas no estándar de estilo barras de desplazamiento en Webkit (es decir, se eliminó hace mucho tiempo).

 18
Author: Frank Lämmer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-12 12:52:38

Asegúrese de que overflow esté configurado en "scroll" y no en "auto"." Dicho esto, en OS X Lion, el desbordamiento establecido en "scroll" se comporta más como automático en que las barras de desplazamiento solo se mostrarán cuando se usen. Entonces, si alguna de las soluciones anteriores no parece estar funcionando, esa podría ser la razón.

Esto es lo que necesitarás para arreglarlo:

::-webkit-scrollbar {
  -webkit-appearance: none;
  width: 7px;
}
::-webkit-scrollbar-thumb {
  border-radius: 4px;
  background-color: rgba(0, 0, 0, .5);
  -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);
}

Puede darle estilo en consecuencia si no le gusta el valor predeterminado.

 17
Author: molls223,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-07 20:27:20
html {height: 101%;}

Uso esta solución de navegadores cruzados (nota: Siempre uso la declaración DOCTYPE en 1a línea, no se si funciona en quirksmode, nunca la probé).

Esto siempre mostrará una barra de desplazamiento vertical ACTIVA en cada página, la barra de desplazamiento vertical será desplazable solo de unos pocos píxeles.

Cuando el contenido de la página es más corto que el área visible del navegador (puerto de vista), todavía verá la barra de desplazamiento vertical activa, y solo se podrá desplazar de pocos píxeles.

En caso de que esté obsesionado con la validación CSS (solo estoy obeso con la validación HTML) al usar esta solución, su código CSS también se validaría para W3C porque no está utilizando atributos CSS no estándar como -moz-scrollbars-vertical

 10
Author: Marco Demaio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-17 14:51:33

body { height:101%; } "recortará" páginas más grandes.

En su lugar, uso:

body { min-height:101%; }
 10
Author: Scott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-01 15:54:08

Un enfoque alternativo es establecer el ancho del elemento html a 100vw. En muchos, si no la mayoría de los navegadores, esto niega el efecto de las barras de desplazamiento en el ancho.

html { width: 100vw; }
 2
Author: lunelson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-08 08:13:53

Pude hacer que esto funcionara agregándolo a la etiqueta del cuerpo. Fue más agradable para mí porque no tengo nada en el elemento html.

body {
    overflow-y: scroll;
}
 1
Author: Jazzepi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-28 14:27:02

Añade este código a tu hoja de estilos CSS:

html {overflow-y: scroll;}

Eso es todo lo que hay !

 1
Author: iCrazybest,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-07 02:30:36

Establecer la altura al 101% es mi solución al problema. Sus páginas ya no' moverán ' al cambiar entre las que exceden la altura de la ventana y las que no lo hacen.

 0
Author: Sanjaal Corps,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-10 15:07:06