2009-07-29 43 views

Trả lời

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

Điều này làm cho thanh cuộn luôn hiển thị và chỉ hoạt động khi cần.

Cập nhật: Nếu phần trên không hoạt động, việc sử dụng này có thể.

html { 
    overflow-y:scroll; 
} 
+3

Bạn có bất cứ ý tưởng gì phiên bản của FF mang hỗ trợ cho 'overflow-y'? Dường như '-moz-scrollbars-vertical' không được dùng để ủng hộ thuộc tính' overflow-y'. –

+0

Tôi nghĩ Internet Explorer 6.x +, Firefox 1.5+ nếu tôi nhớ chính xác. Tôi đã sử dụng mã trên và nó hoạt động trong FF1.5-3.5.1 và IE6-8 cho tôi. – Corv1nus

+0

Cảm ơn, +1. Tôi quên mất thuộc tính '-moz' đó. –

22
html { 
    overflow-y: scroll; 
} 

Đó có phải là những gì bạn muốn không?

Thật không may, Opera 9.64 dường như bỏ qua khai báo CSS đó khi áp dụng cho HTML hoặc BODY, mặc dù nó hoạt động cho các thành phần cấp khối khác như DIV.

9
html {height: 101%;} 

tôi sử dụng này giải pháp trình duyệt chéo(lưu ý: Tôi luôn luôn sử dụng khai báo DOCTYPE trong dòng 1, tôi không biết nếu nó hoạt động trong quirksmode, không bao giờ được thử nghiệm nó).

Điều này sẽ luôn hiển thị thanh cuộn dọc ACTIVE trong mỗi trang, thanh cuộn dọc sẽ chỉ có thể cuộn được vài pixel.

Khi nội dung trang là ngắn hơn so với vùng hiển thị của trình duyệt (cổng xem), bạn sẽ vẫn thấy thanh cuộn dọc hoạt động và chỉ cuộn được vài pixel.

Trong trường hợp bạn bị ám ảnh với xác nhận CSS (tôi obesessed chỉ với xác nhận HTML) bằng cách sử dụng giải pháp này mã CSS của bạn cũng sẽ xác nhận cho W3C bởi vì bạn đang không sử dụng tiêu chuẩn CSS không thuộc tính như -moz-scrollbars-vertical

+0

Giải pháp thanh lịch –

0

Setting chiều cao đến 101% là giải pháp của tôi cho vấn đề. Các trang của bạn sẽ không còn 'flick' khi chuyển đổi giữa các trang vượt quá chiều cao của chế độ xem và những trang không vượt quá.

1

Tôi có thể làm việc này bằng cách thêm nó vào thẻ body. Đẹp hơn cho tôi bởi vì tôi không có gì trên phần tử html.

body { 
    overflow-y: scroll; 
} 
17

Mọi thứ đã thay đổi trong những năm qua. Các câu trả lời ở trên không hợp lệ trong mọi trường hợp nữa. Apple đang đẩy disappearing scrollbars ở mọi nơi. Safari, Chrome và thậm chí Firefox trên MacO (và iO) chỉ hiển thị thanh cuộn khi thực sự cuộn - Tôi không biết về Windows/IE hiện tại. Tuy nhiên có những cách phi tiêu chuẩn để tạo kiểu scroll bars trên Webkit (IE đã giảm một thời gian dài trước đây).

+0

nhưng nó giảm đi một cách duyên dáng ngay trên những cái mới? – Ben

+3

Cảm ơn điểm tuyệt vời này trên thanh cuộn biến mất. Đối với tôi lý do để giữ cho thanh cuộn có thể nhìn thấy được là để tránh giật nhẹ nhưng rất đáng chú ý và rất khó chịu như nội dung thay đổi từ việc di chuyển đến không. Với các thanh cuộn biến mất, chúng không giật cơ thể khi chúng hiển thị và ẩn đi vì vậy nó ok cho tôi. Nhưng cảm ơn vì điểm tuyệt vời này. – Noitidart

+3

Từ quan điểm UX, hầu hết thời gian chúng tôi muốn thanh cuộn hiển thị. Theo xu hướng hiện tại, Nếu một thanh cuộn không hiển thị, đó là bước bổ sung để "thử" một danh sách hiển thị để xem thêm trong danh sách. Một đầu mối trực quan bổ sung rằng danh sách thả xuống hoặc danh sách có nhiều mục trong nó là không cần thiết nếu mọi người nhìn thấy một thanh cuộn. – windsurf88

2

Một cách tiếp cận khác là đặt chiều rộng của phần tử html thành 100vw. Trên nhiều nếu không phải hầu hết các trình duyệt, điều này phủ nhận hiệu ứng của thanh cuộn trên chiều rộng.

html { width: 100vw; } 
1

Thêm mã này để stylesheet CSS của bạn:

html {overflow-y: scroll;} 

Đó là tất cả để có nó!

+0

Câu trả lời chính xác đã tồn tại [ở đây] (http://stackoverflow.com/a/1202450/3679857). –

+0

Và câu trả lời đó đã được thêm 6 năm trước khi bạn đăng câu trả lời này. –

13

Đảm bảo tràn được đặt thành "cuộn" chứ không phải "tự động". Với điều đó nói rằng, trong OS X Lion, tràn bộ để "di chuyển" hoạt động giống như tự động trong thanh cuộn đó sẽ vẫn chỉ hiển thị khi được sử dụng. Vì vậy, nếu bất kỳ giải pháp nào trên đây dường như không hoạt động thì đó có thể là lý do tại sao.

Đây là những gì bạn sẽ cần phải sửa chữa nó:

::-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); 
} 

Bạn có thể tạo kiểu nó cho phù hợp nếu bạn không thích mặc định.

+0

Bạn có biết cách giải quyết cho firefox không? – coderVishal

7

body { height:101%; } sẽ "cắt" các trang lớn hơn.

Thay vào đó, tôi sử dụng:

body { min-height:101%; } 
+0

Câu hỏi này được hỏi 5 năm trước và nó đã có một câu trả lời được chấp nhận. Câu trả lời của bạn không cung cấp câu trả lời tốt hơn câu trả lời đã được chấp nhận. –

+4

Câu trả lời này thực sự cung cấp thêm thông tin không được cung cấp trong các câu trả lời khác. – GaTechThomas

Các vấn đề liên quan