Jak mogę zapobiec nakładaniu się zawartości paska przewijania w IE10?
W IE10 pasek przewijania nie zawsze istnieje... a kiedy się pojawi, pojawia się jako nakładka... Jest to fajna funkcja, ale chciałbym ją wyłączyć dla mojej konkretnej strony internetowej, ponieważ jest to aplikacja pełnoekranowa, a moje logo i menu są za nią utracone.
IE10:
CHROME:
Ktoś zna sposób na stałe ustawianie paska przewijania na IE10?
Overflow-y: scroll nie wydaje się praca! to po prostu umieszcza go na stałe na mojej stronie internetowej.
Może to bootstrap powoduje problem, ale której części nie mam pojęcia! zobacz przykład tutaj: http://twitter.github.io/bootstrap/
6 answers
Po wygooglowaniu trochę natknąłem się na dyskusję, w której komentarz pozostawiony przez "niebieski atrament"stwierdza:
Przeglądając strony, udało mi się je odtworzyć używając:
@ - ms-viewport { width: device-width;}
Co powoduje, że paski przewijania stają się przezroczyste. Ma sens, ponieważ zawartość zajmuje teraz cały ekran.
W tym scenariuszu, dodając:
Overflow - y: auto;
Tworzy paski przewijania auto-hide
I w bootstraps responsive-utilities.less file, linia 21 znajdziesz następujący kod CSS
// IE10 in Windows (Phone) 8
//
// Support for responsive views via media queries is kind of borked in IE10, for
// Surface/desktop in split view and for Windows Phone 8. This particular fix
// must be accompanied by a snippet of JavaScript to sniff the user agent and
// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at
// our Getting Started page for more information on this bug.
//
// For more information, see the following:
//
// Issue: https://github.com/twbs/bootstrap/issues/10497
// Docs: http://getbootstrap.com/getting-started/#support-ie10-width
// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/
// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
@-ms-viewport {
width: device-width;
}
Ten fragment jest przyczyną tego zachowania. Polecam przeczytać linki wymienione w komentowanym kodzie powyżej. (Zostały one dodane po tym jak początkowo zamieściłem tą odpowiedź.)Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-21 15:46:14
Jak xec wspomniał w swojej odpowiedzi, to zachowanie jest spowodowane ustawieniem @ - ms-viewport.
Dobrą wiadomością jest to, że nie musisz usuwać tego ustawienia, aby odzyskać paski przewijania (w naszym przypadku polegamy na ustawieniu @-ms-viewport dla responsive web design).
Możesz użyć stylu-ms-overflow, aby zdefiniować zachowanie przepełnienia, jak wspomniano w tym artykule:
Http://msdn.microsoft.com/en-us/library/ie/hh771902 (v=vs.85). aspx
Ustaw styl na scrollbar, aby odzyskać paski przewijania:
body {
-ms-overflow-style: scrollbar;
}
Scrollbar
Wskazuje, że element wyświetla klasyczny scrollbar-type kontroluj, kiedy jego zawartość przepełnia się. Unforgiven-ms-autohiding-scrollbar, scrollbars na elementach z właściwością-ms-overflow-style ustawioną na pasek przewijania zawsze pojawia się na ekranie i nie wygasa, gdy element jest nieaktywny. Paski przewijania nie nakładają się na zawartość, a zatem zajmuj dodatkowe miejsce w układzie wzdłuż krawędzi element, w którym pojawiaj się.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-20 07:18:42
Rozwiązanie: dwa kroki-Wykryj, czy IE10, następnie użyj CSS:
Zrób to na init:
if (/msie\s10\.0/gi.test(navigator.appVersion)) {
$('body').addClass('IE10');
} else if (/rv:11.0/gi.test(navigator.appVersion)) {
$('body').addClass('IE11');
}
// --OR--
$('body').addClass(
/msie\s10\.0/gi.test(navigator.appVersion) ? 'IE10' :
/rv:11.0/gi.test(navigator.appVersion) ? 'IE11' :
'' // Neither
);
// --OR (vanilla JS [best])--
document.body.className +=
/msie\s10\.0/gi.test(navigator.appVersion) ? ' IE10' :
/rv:11.0/gi.test(navigator.appVersion) ? ' IE11' :
''; // Neither
Dodaj ten CSS:
body.IE10, body.IE11 {
overflow-y: scroll;
-ms-overflow-style: scrollbar;
}
Dlaczego to działa:
-
overflow-y:scroll
na stałe włącza pionowy pasek przewijania znacznika<body>
. -
-ms-overflow-style:scrollbar
wyłącza zachowanie automatycznego ukrywania, przesuwając zawartość i dając nam zachowanie scrollbar, do którego wszyscy jesteśmy przyzwyczajeni.
Aktualizacja dla użytkowników pytających o IE11. - Referencja https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/compatibility/ms537503(v=vs. 85)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-11-02 19:34:01
Spróbuj tego
body{-ms-overflow-style: scrollbar !important;}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-23 13:00:48
Ten problem dotyczy również Datatables na Bootstrap 4. Rozwiązanie Mi było:
- sprawdzono, czy przeglądarka ie się otwiera.
- zastąpiła klasę table-responsive dla klasy table-responsive-ie.
CSS:
.table-responsive-ie {
display: block;
width: 100%;
overflow-x: auto;}
JS:
var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE ");
if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) //If IE
{
$('#tableResponsibleID').removeClass('table-responsive');
$('#tableResponsibleID').addClass('table-responsive-ie');
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-18 12:58:31
Próbowałem @-ms-viewport i innych sugestii, ale żaden nie działał w moim przypadku z IE11 na Windows 7. Nie miałem pasków przewijania, a inne posty tutaj co najwyżej dawały mi pasek przewijania, który nigdzie nie przewijał, mimo że było mnóstwo treści. Znaleziono ten artykuł http://www.rlmseo.com/blog/overflow-auto-problem-bug-in-ie / które zmniejszyły się do . . .
body {
overflow-x: visible;
}
. . . i zrobił sztuczkę dla mnie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-23 22:54:01