Firefox & Opera следует спецификации W3C, которая включает ширину полосы прокрутки в ширину медиазапросов (причина может заключаться в том, чтобы избежать бесконечного цикла, как описано в комментарии здесь ), в то время как Webkit нет (возможно, потому что они думаю нет смысла)
Существует обходной путь (я проверял это только на FF), очевидно, если вы заставите полосу прокрутки быть видимой все время, то ширина теперь будет соответствовать Webkit. Вот код:
html
{
overflow:hidden;
height:100%;
}
body
{
position:relative;
overflow-y:scroll;
height:100%;
-webkit-overflow-scrolling:touch; /* So iOS Safari gets the inertia & rubber-band effect */
}
Если вы хотите применить это только к FF & Opera, вы можете прибегнуть к CSS-хаки:
/* Firefox */
@-moz-document url-prefix()
{
html
{
overflow:hidden;
height:100%;
}
body
{
position:relative;
overflow-y:scroll;
height:100%;
/*-webkit-overflow-scrolling:touch;*/
}
}
/* Opera */
x:-o-prefocus, html
{
overflow:hidden;
height:100%;
}
x:-o-prefocus, body
{
position:relative;
overflow-y:scroll;
height:100%;
}
Само собой разумеется, предостережение в том, что полоса прокрутки будет видна всегда, что может быть хорошим компромиссом.