CSS thanh cuộn
Thanh cuộn tùy chỉnh ngày nay đang trở nên phổ biến hơn và tôi rất muốn tìm hiểu về chúng. Có nhiều lý do khác nhau để tùy chỉnh thanh cuộn. Ví dụ: thanh cuộn mặc định có thể làm cho giao diện người dùng ứng dụng trông không nhất quán trên nhiều hệ điều hành và ở đây chúng ta có thể nhận được lợi ích khi có một kiểu thống nhất Show
Tôi luôn muốn tìm hiểu về cách tùy chỉnh thanh cuộn trong CSS nhưng không có cơ hội thực hiện. Trong bài viết này, tôi sẽ nhân cơ hội và tìm hiểu về chúng và ghi lại hành trình này Giới thiệuĐiều đầu tiên mà tôi muốn giải thích là các thành phần hoặc các phần của thanh cuộn. Một thanh cuộn chứa rãnh và ngón tay cái. Đây là một hình ảnh cho thấy họ Rãnh là cơ sở của thanh cuộn, trong đó ngón tay cái là thứ mà người dùng kéo để cuộn trong một trang hoặc một phần Có một điều quan trọng cần lưu ý là thanh cuộn có thể hoạt động theo chiều ngang hoặc chiều dọc, tùy thuộc vào thiết kế. Ngoài ra, điều đó có thể thay đổi khi làm việc trên một trang web đa ngôn ngữ hoạt động theo cả hướng từ trái sang phải (LTR) và từ phải sang trái (RTL) Tùy chỉnh thiết kế thanh cuộnCó một thanh cuộn tùy chỉnh từng chỉ là webkit nên Firefox và IE đã ra khỏi trò chơi. Chúng tôi có một cú pháp mới chỉ hoạt động trong Firefox và sẽ giúp chúng tôi thực hiện mọi việc dễ dàng hơn khi nó được hỗ trợ đầy đủ. Tôi sẽ xem qua cú pháp Webkit cũ và sau đó là cú pháp mới Cú pháp cũChiều rộng thanh cuộnĐầu tiên, chúng ta cần xác định kích thước của thanh cuộn. Đây có thể là chiều rộng cho thanh cuộn dọc và chiều cao cho thanh cuộn ngang
Với bộ đó, chúng ta có thể tự tạo kiểu cho thanh cuộn Đường ray thanh cuộnĐiều này đại diện cho cơ sở của thanh cuộn. Chúng ta có thể tạo kiểu cho nó bằng cách thêm màu nền, bóng đổ, bán kính đường viền và đường viền
Ngón cái thanh cuộnKhi chúng ta đã sẵn sàng phần đế của thanh cuộn, chúng ta cần tạo kiểu cho ngón tay cái của thanh cuộn. Điều đó quan trọng vì người dùng có thể kéo ngón tay cái này để tương tác với thanh cuộn
Cùng với đó, chúng tôi đã giới thiệu cách cũ để tạo kiểu thanh cuộn tùy chỉnh trong CSS. Hãy cùng khám phá cú pháp mới Cú pháp mớichiều rộng thanh cuộnNhư đã nói, điều này xác định chiều rộng của thanh cuộn và các giá trị mà chúng tôi quan tâm nhất là 9 và 0. Thật không may, chúng tôi không thể xác định một số cụ thể như trong cú pháp webkit
Màu thanh cuộnVới thuộc tính này, chúng ta có thể xác định màu cho cả rãnh thanh cuộn và ngón tay cái dưới dạng giá trị cặp
Đơn giản như cú pháp mới này, nhưng nó hạn chế. Chúng tôi chỉ có thể áp dụng màu rắn. Chúng tôi không thể thêm bóng, độ dốc, cạnh tròn hoặc bất kỳ thứ gì tương tự. Những gì chúng tôi được phép tùy chỉnh chỉ là màu sắc máng xối thanh cuộnBạn đã bao giờ tự hỏi về cách chúng tôi có thể tránh thay đổi bố cục khi nội dung phát triển trong vùng chứa cuộn chưa?
Chúng tôi có một thùng chứa có lớp đệm 1 ở tất cả các mặt. Cho đến bây giờ, nội dung còn ngắn và thanh cuộn không được hiển thị vì 2 được sử dụng (Lời nhắc thân thiện. khi 9 được sử dụng cho 4, nó sẽ không hiển thị thanh cuộn cho đến khi nội dung dài)Khi nội dung phát triển, thanh cuộn sẽ được hiển thị và do đó không gian dành cho nội dung sẽ bị giảm Lưu ý cách nội dung thay đổi khi có thanh cuộn. Đó là bởi vì trình duyệt nên dành một khoảng trống cho thanh cuộn Rất may, điều này có thể được giải quyết ngay bây giờ với 5 (được hỗ trợ trong các trình duyệt dựa trên Chromium, v94+). Nó hoạt động theo cách cho phép chúng tôi đặt chỗ trước. Giá trị mặc định là 9 và giá trị khác là 7. Điều đáng nói là có một giá trị tùy chọn 8 hiển thị máng xối ở cả hai bên 6Bằng cách đó, khi nội dung phát triển, nó sẽ không thay đổi vì trình duyệt đã dành chỗ cho nó. Dưới đây là hình ảnh hiển thị hai trường hợp (Nội dung ngắn so với nội dung dài) Để làm cho mọi thứ rõ ràng hơn, tôi đã làm việc trên một bản trình diễn tương tác cho thấy cách thêm máng xối vào thùng chứa Xem Máng xối thanh cuộn bút - Bản demo của Ahmad Shadeed (@shadeed) trên CodePen Chỉ định phạm vi của thanh cuộn tùy chỉnhMột điều quan trọng cần biết là nơi để tùy chỉnh thanh cuộn. Bạn có muốn phong cách chung chung và hoạt động cho tất cả các thanh cuộn trên trang web không? Với cú pháp cũ, chúng ta có thể viết các bộ chọn mà không cần gắn chúng vào một phần tử và chúng sẽ được áp dụng cho tất cả các phần tử có thể cuộn 7Tuy nhiên, nếu bạn chỉ muốn áp dụng cho một phần cụ thể, bạn cần thêm phần tử vào trước bộ chọn 8Đối với cú pháp mới, nó gần như giống nhau. Điều mà tôi nhận thấy là nếu bạn muốn có một phong cách chung chung, nó nên được áp dụng cho phần tử 9, không phải cho phần tử 0 1Tôi đã thử thêm phần trên cho 0 nhưng nó không hoạt động như mong đợiBây giờ chúng ta đã biết cách thức hoạt động của cú pháp cũ và mới, hãy bắt đầu tùy chỉnh một số thiết kế thanh cuộn Tùy chỉnh thiết kế thanh cuộnví dụ 1Trước khi đi sâu vào tùy chỉnh thanh cuộn, cần nói về kiểu mặc định trong Mac OS. Đây là cách nó trông
Đối với cửa sổ, nó hơi khác một chút Đây là cách chúng tôi có thể tùy chỉnh thanh cuộn dựa trên mô hình mô phỏng ở trên 0Việc thêm 2 cho cả rãnh và ngón tay cái là cần thiết vì nó sẽ không hoạt động trên 3Với cú pháp mới, chúng tôi không thể điều chỉnh 4 của thanh cuộn và điều duy nhất có thể làm là thay đổi màu nền của rãnh và ngón tay cái 1Ghi chú. các ví dụ tiếp theo chỉ hoạt động với cú pháp 5. Đối với dự án thực tế, bạn có thể thêm cả cú pháp 5 và cú pháp mớiví dụ 2Đối với ví dụ này, thiết kế nặng hơn một chút vì nó chứa độ dốc và bóng. Điều đó có khả thi không? . Hãy xem làm thế nào 2Xem Thanh cuộn tùy chỉnh bút - 2 của Ahmad Shadeed (@shadeed) trên CodePen ví dụ 3Chúng tôi cũng có thể thêm đường viền vào ngón tay cái và theo dõi, điều này có thể giúp chúng tôi thực hiện một số thiết kế phức tạp 3Dựa trên ví dụ tương tự, chúng ta có thể đặt lại viền trên và dưới thành 7 và nhận được hiệu ứng thú vị cho ngón tay cái. Lưu ý những yếu tố nhỏ ở trên cùng và dưới cùng của ngón tay cáiXem Thanh cuộn tùy chỉnh bút - 3 của Ahmad Shadeed (@shadeed) trên CodePen Ví dụ 4Trong ví dụ này, chúng tôi muốn ngón tay cái của thanh cuộn có độ lệch từ mọi phía. Vì không thể sử dụng 8 với các thuộc tính của thanh cuộn, nên chúng tôi cần khắc phục điều đó bằng cách sử dụng đường viền CSS và 9. Tôi đã biết về ý tưởng này từ bài báo tuyệt vời này của Gabriel RomualdoTheo mặc định, khi một phần tử có nền và đường viền, trình duyệt sẽ cắt 0Xem xét ví dụ sau 4Chúng tôi có một nút có viền đen 1. Nó không có phần đệm để giải thích khái niệm. Giả sử rằng 2 được đặt thành 0, đường viền sẽ được bao gồm trong kích thước của nút. Kết quả là đường viền xuất hiện phía trên nềnBây giờ, khi chúng tôi áp dụng 4, nền sẽ chỉ xuất hiện xung quanh nội dung 5Tôi hy vọng ý tưởng là rõ ràng. Hãy quay trở lại ngón tay cái của thanh cuộn. Để bắt chước hiệu ứng, chúng ta cần thêm vào như sau 6Và chúng tôi đã hoàn thành Xem Thanh cuộn tùy chỉnh bút - 4 của Ahmad Shadeed (@shadeed) trên CodePen Cùng với đó, chúng tôi đã khám phá cách tùy chỉnh các thiết kế thanh cuộn khác nhau. Đối với Firefox, chúng ta có thể sử dụng cú pháp mới nhưng một lần nữa, nó chỉ giới hạn ở độ dày và màu đồng nhất Chúng tôi có thể thêm hiệu ứng di chuột không?Có, chúng tôi có thể thêm hiệu ứng di chuột vào ngón tay cái của thanh cuộn cho cú pháp cũ và mới 7Với cú pháp mới, chúng ta có thể thêm các hiệu ứng chuyển tiếp, trong khi với cú pháp cũ, chúng ta không thể. Đây không phải là vấn đề lớn đối với tôi Hiển thị thanh cuộn khi cầnCó thể tạo một phần tử có thể cuộn bằng cách thêm một giá trị khác với 5 vào thuộc tính 6. Bạn nên sử dụng từ khóa 9 vì nó sẽ chỉ hiển thị thanh cuộn nếu nội dung vượt quá vùng chứa của nó 8Mối quan tâm về khả năng tiếp cậnTrong khi tùy chỉnh thiết kế thanh cuộn, hãy nhớ để có độ tương phản tốt giữa ngón tay cái và rãnh để người dùng có thể dễ dàng nhận thấy Xem xét ví dụ "xấu" sau đây cho thanh cuộn tùy chỉnh Màu ngón tay cái hầu như không đáng chú ý. Điều này không tốt cho người dùng vì nó sẽ gây khó khăn hơn trong trường hợp họ được sử dụng để cuộn qua ngón tay cái Bạn có thể định kiểu CSS cho thanh cuộn không?Vào tháng 9 năm 2018, W3C CSS Scrollbars đã xác định các thông số kỹ thuật để tùy chỉnh giao diện của thanh cuộn bằng CSS. Tính đến năm 2020, 96% người dùng internet đang chạy các trình duyệt hỗ trợ kiểu thanh cuộn CSS . Tuy nhiên, bạn sẽ cần viết hai bộ quy tắc CSS để bao gồm Blink và WebKit cũng như trình duyệt Firefox.
Làm cách nào để tạo CSS có thể cuộn?Đối với thanh cuộn dọc, hãy sử dụng trục x và y. Đặt tràn-x. ẩn giấu; . auto; sẽ tự động ẩn thanh cuộn ngang và chỉ hiển thị thanh cuộn dọc. Ở đây div cuộn sẽ có thể cuộn theo chiều dọc.
Làm cách nào để đặt chiều rộng thanh cuộn trong CSS?scrollbar-width chấp nhận các giá trị sau. . auto là giá trị mặc định và sẽ hiển thị các thanh cuộn tiêu chuẩn cho tác nhân người dùng thin sẽ yêu cầu tác nhân người dùng sử dụng thanh cuộn mỏng hơn, khi áp dụng không cái nào sẽ ẩn hoàn toàn thanh cuộn mà không ảnh hưởng đến khả năng cuộn của phần tử |