2009-07-29 19 views
8

Gdy przejdziesz do strony w mojej witrynie, na której znajduje się dodatkowa treść, pasek przewijania pojawi się po prawej stronie, ale ma on zauważalne przesunięcie w lewo dla mojej zawartości. Zauważysz to, klikając dom, a następnie hosting iz powrotem na mojej stronie (www.ipalaces.org)Przesunięcie paska przewijania przeglądarki

Jak mogę uwzględnić pasek przewijania przeglądarki na moich stronach? Czy mogę zrobić tak, aby pasek przewijania był zawsze widoczny?

Moja strona internetowa to www.ipalaces.org, proszę dać mi znać.

+0

Dla osób próbujących odtworzyć, może być konieczne zmniejszenie rozmiaru okna. – waiwai933

+0

Działa dobrze dla mnie w IE8. O której przeglądarce mówimy? – Joey

+0

Wszystkie przeglądarki, używam rozdzielczości 1360 x 768, 720P na moim telewizorze HD, więc może twoja rozdzielczość jest wyższa, co pozwala zobaczyć pełną zawartość, jeśli tak jest, spróbuj tutaj http://www.ipalaces.org/hosting/ domains.html, a następnie kliknij dom, aby zauważyć różnicę. – ParoX

Odpowiedz

3

Zwiększ swoje ciało o 101% ... spowoduje to, że pasek przewijania będzie zawsze widoczny.

body {height:101%} 
+0

To działa dobrze, ale istnieje irytujące przesunięcie w dół o 1 piksel. Czy nie ma sposobu, aby wszystkie przeglądarki wyświetlały pasek przewijania, ale mają go wyłączone, jeśli nie jest potrzebne. Podobnie jak -moz-scrollbars-vertical; ale bardziej uniwersalny – ParoX

+0

html, body {height: 100%; margin-bottom: 1px;} Wydaje się, że zmniejszyliśmy różnicę, ale nadal istnieje irytująca luka. – ParoX

11

Cóż, to zależy od przeglądarki.

body { 

overflow-y: scroll; 
overflow-x: scroll; 
overflow: -moz-scrollbars-vertical; 

} 

powinien ograniczać poziomy (overflow-x) i pionowe paski przewijania (overflow-y) mają być wyświetlane. Chociaż przypominam sobie, że Opera czasami nie respektuje deklaracji, chyba że znajduje się na elemencie wewnątrz <body> (divy i tym podobne).


Zmieniano w odniesieniu do @ wsanville-tych, i @ BHare, w komentarzu.

+0

Pozostawia to paskudny podwójny pasek przewijania, kiedy jest potrzebny. – ParoX

+0

Zdefiniuj "podwójny pasek przewijania". Dwa paski przewijania razem na każdej osi? –

+1

Nie powinieneś stosować właściwości przepełnienia do 'html' i' body' w przeciwnym razie będziesz miał dwa paski przewijania! Fuj! – wsanville

1

Spróbuj ... Wiem, że to brzydkie, ale to może być jedyna droga.

#force_scroll { 
    width: 1em; 
    position: absolute; 
    top: 0; 
    bottom: -0.1px; 
    z-index: -1; 
} 

A potem gdzieś w kodzie HTML (najlepiej tuż przed swoimi </body>):

<div id="force_scroll"></div> 
+0

Przed moim co? To również nie działa. – ParoX

+0

-0,1px nie jest prawidłowym pomiarem. Mimo to, używanie -1px lub -0.1em nadal pozostawia taki sam efekt jak margines-bottom: 1px; Strona może wciąż przewijać o 1 piksel w dół. – ParoX

+0

@Brian, zobacz edycję. Oryginalnie '' nie zostało zmienione/oznaczone jako kod. Więc nie było renderowane na stronie. Zdaję sobie sprawę, że prawdopodobnie jest już za późno, by być przydatnym. –

1
body { 
    overflow: scroll; 
} 

miałem ten sam problem nawet z najnowszego Firefoksa (3.5). Funkcja przelewu uratowała mi życie!

7

Przetestowałem to na IE6, IE7, IE8, Firefox 3 oraz Chrome i prosty sposób mieć pionowy pasek przewijania, zawsze widoczny jest po prostu:

html { overflow-y: scroll; } 
+0

To wydaje się mniej hackish niż przyznana odpowiedź. http://css-tricks.com/eliminate-jumps-in-horizontal-centering-by-forcing-a-scroll-bar/ –

1

To wydaje się doskonale do ja ...

html { 
    overflow-y: scroll; 
} 
Powiązane problemy