เครื่องสร้างแถบเลื่อน CSS
แถบเลื่อนแบบกำหนดเองเคยเป็นฝันร้ายของพสูโดอิลิเมนต์ที่ต้องใส่คำนำหน้าตามผู้ผลิต แต่ปัจจุบัน scrollbar-color และ scrollbar-width รองรับกรณีทั่วไปในเบราว์เซอร์สมัยใหม่ทั้งหมด ทั้งความกว้างแบบแคบหรือแบบปกติ และธีมสองสี (ตัวเลื่อนและราง) สำหรับการควบคุมระดับพิกเซล (ระยะขอบภายในของราง รัศมีของตัวเลื่อน สถานะเมื่อชี้เมาส์) พสูโดอิลิเมนต์รุ่นเก่าอย่าง ::-webkit-scrollbar ยังใช้งานได้ใน Chrome และ Safari เครื่องมือนี้จะสร้างทั้งสองแบบและจัดลำดับการซ้อน (cascade) ให้ถูกต้อง
วิธีจัดรูปแบบแถบเลื่อน
-
1
เลือกความกว้าง
auto (ความกว้างเริ่มต้นของแพลตฟอร์ม), thin (แคบกว่า) หรือค่าพิกเซลที่เจาะจงผ่านกฎของ webkit
-
2
ตั้งสีของตัวเลื่อนและราง
`scrollbar-color` แบบสมัยใหม่รับค่าสองสี ส่วนกฎของ webkit ให้กำหนดสี รัศมี และสถานะเมื่อชี้เมาส์แยกกันได้
-
3
เพิ่มเอฟเฟกต์เมื่อชี้เมาส์ (ไม่บังคับ)
ตัวเลื่อนจะสว่างขึ้นเมื่อชี้เมาส์ ทำงานผ่าน `::-webkit-scrollbar-thumb:hover`
-
4
กำหนดขอบเขต
ใช้กับ `html` / `body` (ทั้งหน้า) หรือใช้เฉพาะกับคอนเทนเนอร์ที่เลื่อนได้ตัวใดตัวหนึ่ง
-
5
คัดลอก CSS
กฎแบบสมัยใหม่ผสานกับ webkit: ทำงานได้ในทุกเบราว์เซอร์สมัยใหม่ พร้อมการรองรับสำรองที่ราบรื่น
คุณสมบัติมาตรฐานสมัยใหม่ (2023 เป็นต้นไป)
/* Applies to the element that scrolls */
html {
scrollbar-width: thin; /* auto | thin | none */
scrollbar-color: #4f46e5 #e5e7eb; /* thumb track */
}
การรองรับของเบราว์เซอร์ (2024):
scrollbar-width: Chrome 121+, Safari 18.2+, Firefox 64+scrollbar-color: Chrome 121+, Safari 18.2+, Firefox 64+scrollbar-gutter: stable: Chrome 94+, Safari 14+, Firefox 97+ จองพื้นที่ของแถบเลื่อนไว้แม้ในตอนที่ไม่จำเป็น จึงช่วยป้องกันการขยับของเลย์เอาต์
พสูโดอิลิเมนต์ของ webkit (Chrome, Safari, Edge รุ่นเก่า)
::-webkit-scrollbar {
width: 10px;
height: 10px;
}
::-webkit-scrollbar-track {
background: #e5e7eb;
border-radius: 10px;
}
::-webkit-scrollbar-thumb {
background: #4f46e5;
border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover {
background: #3730a3;
}
ควบคุมได้ละเอียดยิ่งขึ้น width กำหนดความกว้างของแถบเลื่อนแนวตั้ง ส่วน height กำหนดความสูงของแถบเลื่อนแนวนอน ให้ใส่ทั้งสองค่าสำหรับคอนเทนเนอร์ที่เลื่อนได้ทั้งสองทิศทาง
จัดลำดับการซ้อนทั้งสองแนวทาง
ระบุกฎแบบสมัยใหม่ก่อน แล้วจึงใช้ webkit เป็นส่วนเสริมสำหรับเบราว์เซอร์ที่แสดงผลได้ทั้งสองแบบ:
.scroll-area {
scrollbar-width: thin;
scrollbar-color: #4f46e5 #e5e7eb;
}
.scroll-area::-webkit-scrollbar { width: 8px; }
.scroll-area::-webkit-scrollbar-track { background: #e5e7eb; }
.scroll-area::-webkit-scrollbar-thumb {
background: #4f46e5;
border-radius: 4px;
border: 2px solid #e5e7eb;
}
Firefox จะยึดตามกฎ scrollbar-* แบบสมัยใหม่เท่านั้น ส่วน Chrome และ Safari จะยึดตามกฎของ webkit (ซึ่งเขียนทับกฎแบบสมัยใหม่ พฤติกรรมจึงสอดคล้องกัน)
scrollbar-gutter ป้องกันการขยับของเนื้อหา
หากไม่มีการจองช่องไว้ เนื้อหาจะจัดเรียงใหม่เมื่อแถบเลื่อนปรากฏขึ้น (พบได้บ่อยในรายการแบบไดนามิก) วิธีแก้:
html { scrollbar-gutter: stable; }
/* or */
html { scrollbar-gutter: stable both-edges; }
ช่องของแถบเลื่อนจะถูกจองไว้ไม่ว่าเนื้อหาจะเลื่อนหรือไม่ก็ตาม both-edges จะเพิ่มช่องที่เท่ากันไว้อีกฝั่งหนึ่ง เพื่อให้เนื้อหาอยู่กึ่งกลางในเชิงสายตา
ซ่อนแถบเลื่อนทั้งหมด
.no-scrollbar {
scrollbar-width: none; /* Firefox */
}
.no-scrollbar::-webkit-scrollbar { display: none; } /* Chrome, Safari */
โปรดระวัง: การซ่อนแถบเลื่อนทำให้ผู้ใช้ไม่เห็นว่าเนื้อหาสามารถเลื่อนได้ ควรใช้เฉพาะเมื่อมีตัวบ่งชี้ที่ชัดเจน (ลูกศร จุดบอกหน้า) หรือเมื่อพฤติกรรมการเลื่อนชัดเจนจากบริบท (คารูเซลแนวนอน ประวัติการแชท)
ข้อควรพิจารณาสำหรับมือถือ
บน iOS และ Android แถบเลื่อนจะปรากฏเพียงชั่วครู่ระหว่างที่เลื่อน CSS แถบเลื่อนแบบกำหนดเองของคุณยังคงมีผล แต่ผู้ใช้อาจไม่เห็นมันนานเกินหนึ่งวินาที จงออกแบบให้เหมาะสม อย่าลงทุนมากเกินไปกับลูกเล่นทางสายตาที่แทบไม่ปรากฏ
การเข้าถึง
- ความต่างของสี: ตัวเลื่อนเทียบกับรางควรได้อัตราส่วน 3:1 สำหรับความต่างของสีที่ไม่ใช่ข้อความ (WCAG 1.4.11)
- ความกว้าง: แถบเลื่อนที่บางอาจจับด้วยเมาส์ได้ยาก โดยเฉพาะสำหรับผู้ใช้ที่มีข้อจำกัดด้านการเคลื่อนไหว ความกว้างปกติจึงเป็นค่าเริ่มต้นที่ปลอดภัยกว่า
- อย่าเอาแถบเลื่อนออก จากพื้นที่ที่เลื่อนได้โดยเด็ดขาด หากไม่มีวิธีเลื่อนแบบอื่นให้ ผู้ใช้ที่พึ่งพาแถบเลื่อนจะติดขัด
คำถามที่พบบ่อย
ได้ ด้วยคุณสมบัติสมัยใหม่ scrollbar-width และ scrollbar-color Firefox ไม่รองรับพสูโดอิลิเมนต์ของ webkit ดังนั้นเพื่อให้ได้รูปลักษณ์ที่สอดคล้องกันในทุกเบราว์เซอร์ ให้ใช้คุณสมบัติสมัยใหม่ก่อน แล้วเพิ่มกฎของ webkit เป็นส่วนเสริม
เพราะแถบเลื่อนเริ่มต้นจะซ้อนทับเนื้อหาและไม่จองพื้นที่ไว้จนกว่าจะจำเป็น ให้ตั้งค่า scrollbar-gutter: stable บนองค์ประกอบที่เลื่อนได้ เพื่อจองช่องไว้เสมอ ซึ่งจะป้องกันการจัดเรียงใหม่เมื่อแถบเลื่อนปรากฏหรือหายไป
โดยทั่วไปควรซ่อน เพราะแถบเลื่อนดูไม่เข้ากันและแย่งความสนใจกับเนื้อหา ให้เพิ่มจุดบอกหน้าหรือปุ่มลูกศรที่มองเห็นได้ เพื่อให้ผู้ใช้ยังรู้ว่าเนื้อหาเลื่อนได้ และให้ปฏิบัติตาม prefers-reduced-motion หากใช้การดูดเข้าตำแหน่งขณะเลื่อน (scroll-snapping)
มีได้ แถบเลื่อนที่บางมากหรือมีความต่างของสีต่ำจะใช้งานยากสำหรับผู้ใช้ที่มีข้อจำกัดด้านการเคลื่อนไหวและผู้ที่สายตาเลือนราง ควรรักษาความกว้างของแถบเลื่อนไว้อย่างน้อย 8–10 px เพื่อให้จับได้สะดวก และคงความต่างของสีระหว่างตัวเลื่อนกับรางไว้ที่ 3:1
เครื่องมือที่เกี่ยวข้อง
ตารางอ้างอิง ASCII
ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL
อ้างอิงตัวอักษร HTML
รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ
ตารางอ้างอิงแป้นพิมพ์ลัด
ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux
เครื่องสุ่มที่อยู่
สร้างระเบียนคล้ายที่อยู่ 1–20 รายการสำหรับแบบจำลองและการทดสอบ ด้วยรูปแบบประเทศแบบย่อ
ตัวตรวจสอบความถูกต้องของ JSON
ตรวจสอบไวยากรณ์ JSON และตรวจจับเครื่องหมายจุลภาคต่อท้าย เครื่องหมายอัญประกาศที่ผิด คีย์ซ้ำ และโครงสร้างที่ผิดรูปแบบ พร้อมระบุตำแหน่งข้อผิดพลาดอย่างแม่นยำ
ตัวลดรูปพีชคณิตบูลีน
ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^
เครื่องมือนี้มีให้บริการในภาษาอื่น
- CSS-Scrollbar-Generator [DE]
- Gerador de barra de rolagem CSS [PT]
- Generador de barra de desplazamiento CSS [ES]
- CSSスクロールバージェネレーター [JA]
- CSS-schuifbalkgenerator [NL]
- Trình tạo thanh cuộn CSS [VI]
- Generator Bilah Gulir CSS [ID]
- CSS 스크롤바 생성기 [KO]
- CSS-generator för rullningslist [SV]
- مولّد شريط التمرير CSS [AR]
- Générateur de barre de défilement CSS [FR]
- Generator paska przewijania CSS [PL]
- Generatore di barre di scorrimento CSS [IT]
- Генератор CSS-скроллбара [RU]
- CSS Kaydırma Çubuğu Oluşturucu [TR]
- CSS滚动条生成器 [ZH]
- CSS Scrollbar Generator [EN]