โฮมเพจ » UI / UX » 4 วิธีในการสร้าง CSS-Only Accordions ที่ยอดเยี่ยม

    4 วิธีในการสร้าง CSS-Only Accordions ที่ยอดเยี่ยม

    หีบเพลงเนื้อหาทำให้รูปแบบการออกแบบที่มีประโยชน์ คุณสามารถใช้มันเพื่อสิ่งต่าง ๆ มากมาย: สำหรับเมนูรายการรูปภาพบทความที่ตัดตอนมาบทความตัวอย่างข้อความและแม้แต่วิดีโอ

    หีบเพลงส่วนใหญ่ที่นั่นพึ่งพา JavaScript ส่วนใหญ่เกี่ยวกับ jQuery, แต่เนื่องจากการใช้เทคนิค CSS3 ขั้นสูงเริ่มแพร่หลายเราจึงสามารถหาตัวอย่างที่ดีได้ ใช้ HTML และ CSS เท่านั้น, ที่ทำให้สามารถเข้าถึงได้ในสภาพแวดล้อมที่ปิดใช้งาน JavaScript.

    การสร้าง CSS-only accordions อาจเป็นงานที่ยุ่งยากดังนั้นในบทความนี้เราจะพยายามทำ เข้าใจแนวคิดหลักที่นักพัฒนาใช้เมื่อต้องการสร้าง.

    ในการสร้างแท็บ CSS เท่านั้นโดยปกติจะมีสองวิธีหลักแต่ละแท็กจะมีสองกรณีการใช้งานบ่อย วิธีแรกใช้ องค์ประกอบรูปแบบที่ซ่อนอยู่, ในขณะที่คนที่สองใช้ประโยชน์จาก CSS ตัวเลือกหลอก.

    1. วิธีการปุ่มแบบเรดิโอ

    วิธีปุ่มแบบเรดิโอเพิ่มการป้อนข้อมูลวิทยุที่ซ่อนอยู่และป้ายกำกับที่สอดคล้องกับแต่ละแท็บของหีบเพลง ตรรกะนั้นง่าย: เมื่อผู้ใช้เลือกแท็บพวกเขาโดยทั่วไปจะตรวจสอบปุ่มตัวเลือกที่เป็นของแท็บนั้นเช่นเดียวกับที่พวกเขากรอกแบบฟอร์ม เมื่อพวกเขาคลิกที่แท็บถัดไปในหีบเพลงพวกเขาเลือกปุ่มตัวเลือกถัดไป ฯลฯ.

    ในวิธีนี้, สามารถเปิดได้เพียงแท็บเดียว ในเวลาเดียวกัน. ตรรกะของ HTML มีลักษณะดังนี้:

     

    ชื่อเนื้อหา (อย่าใช้แท็ก h1 ที่นี่)

    เนื้อหาบางส่วน ...

    p>

    คุณจำเป็นต้อง เพิ่มคู่ฉลากวิทยุแยกสำหรับแต่ละแท็บ ในหีบเพลง HTML เพียงอย่างเดียวจะไม่ให้พฤติกรรมที่ต้องการคุณต้องเพิ่มกฎ CSS ที่เหมาะสมด้วยลองมาดูกันว่าคุณจะสามารถทำได้อย่างไร.

    แท็บแนวตั้งความสูงคงที่

    ในโซลูชันนี้ (ดูภาพหน้าจอด้านล่าง) ผู้พัฒนาซ่อนปุ่มตัวเลือกด้วยความช่วยเหลือของ แสดง: ไม่มี; กฎจากนั้นเขาก็ให้ตำแหน่งสัมพัทธ์กับแท็กป้ายชื่อที่เก็บชื่อของแต่ละแท็บและตำแหน่งที่แน่นอนเพื่อที่สอดคล้องกัน ป้าย: หลังจาก องค์ประกอบหลอก.

    หลังถือที่จับที่มีเครื่องหมายสีเขียว + ที่เปิดแท็บ แท็บที่ปิดยังใช้มือจับที่มีเครื่องหมายสีเขียว “-” สัญญาณ ใน CSS แท็บที่ปิดจะถูกเลือกด้วยความช่วยเหลือของตัวเลือกองค์ประกอบ + องค์ประกอบ.

    คุณต้องให้ความสูงคงที่กับเนื้อหาของแท็บที่เปิดอยู่ ในการทำเช่นนี้ให้เลือกเนื้อหาของแท็บที่เปิดอยู่ (ทำเครื่องหมายด้วยคลาสเนื้อหาแท็บใน HTML ด้านบน) ด้วยความช่วยเหลือของ element1 ~ element2 CSS selector.

    ตรรกะพื้นฐานของ CSS ที่นี่มีดังต่อไปนี้:

     อินพุต [type = radio] display: none;  label position: relative; จอแสดงผล: บล็อก;  label: หลัง content: "+"; ตำแหน่ง: สัมบูรณ์; ขวา: 1em;  อินพุต: เครื่องหมาย + ป้ายกำกับ: หลัง เนื้อหา: "-";  อินพุต: ทำเครื่องหมาย ~ .tab-content height: 150px;  

    คุณสามารถดู CSS แบบเต็มได้ที่นี่ใน Codepen CSS แรกเริ่มนั้นถูกเขียนใน Sass แต่ถ้าคุณคลิกที่ “รวบรวมดูแล้ว” คุณสามารถเห็นไฟล์ CSS ที่คอมไพล์แล้ว.

    ภาพ: Codepen โดย Jon Yablonski

    รูปหีบเพลงที่มีปุ่มตัวเลือก

    หีบเพลงภาพที่สวยงามนี้ใช้วิธีการตัวเลือกปุ่มเดียว แต่แทนที่จะเป็นป้ายกำกับนักพัฒนาที่นี่ ใช้แท็ก HTML ของ figcaption เพื่อให้บรรลุพฤติกรรมหีบเพลง.

    CSS ค่อนข้างแตกต่างกันส่วนใหญ่เป็นเพราะในกรณีนี้แท็บไม่ได้วางในแนวตั้ง แต่เป็นแนวนอน นักพัฒนาใช้องค์ประกอบ + องค์ประกอบ CSS ตัวเลือก (ที่ใช้ในกรณีก่อนหน้านี้เพื่อเลือกสลับ) เพื่อให้แน่ใจว่าขอบของภาพที่ครอบคลุมยังคงมองเห็นได้.

    ภาพ: Tympanus.net

    อ่านคำแนะนำโดยละเอียดเกี่ยวกับวิธีสร้างหีบเพลง CSS ที่หรูหราเท่านั้น.

    2. วิธีการช่องทำเครื่องหมาย

    วิธีการช่องทำเครื่องหมายใช้ประเภทอินพุตช่องทำเครื่องหมายแทนปุ่มตัวเลือก เมื่อผู้ใช้เลือกแท็บพวกเขาจะเลือกช่องทำเครื่องหมายที่เกี่ยวข้อง.

    ความแตกต่างเมื่อเทียบกับวิธีปุ่มตัวเลือกก็คือ เป็นไปได้ที่จะเปิดมากกว่าหนึ่งแท็บในเวลาเดียวกัน, เหมือนเป็นไปได้ที่จะตรวจสอบมากกว่าหนึ่งช่องทำเครื่องหมายภายในแบบฟอร์ม.

    ในทางกลับกันแท็บจะไม่ปิดตัวเองเมื่อผู้ใช้คลิกอีกอันหนึ่ง ตรรกะของ HTML นั้นเหมือนกันก่อนหน้านี้ในกรณีนี้คุณต้องใช้ช่องทำเครื่องหมายสำหรับประเภทอินพุต.

     

    ชื่อเนื้อหา (อย่าใช้แท็ก h1 ที่นี่)

    เนื้อหาบางส่วน ...

    p>

    หีบเพลงกล่องความสูงคงที่

    หากคุณต้องการแท็บเนื้อหาความสูงคงที่ตรรกะของ CSS นั้นค่อนข้างเหมือนกับในกรณีปุ่มตัวเลือกมันเป็นเพียงแค่ประเภทอินพุตมีการเปลี่ยนแปลงจากช่องทำเครื่องหมายเป็นช่องทำเครื่องหมาย ในปากกา Codepen นี้คุณสามารถดูรหัสได้.

    ภาพ: Codepen โดย Jon Yablonski

    หีบเพลงความสูงของของเหลว

    เมื่อเปิดมากกว่าหนึ่งแท็บในเวลาเดียวกันการแสดงแท็บความสูงคงที่อาจส่งผลเสียต่อประสบการณ์การใช้งานของผู้ใช้เนื่องจากความสูงของหีบเพลงสามารถเติบโตได้อย่างมีนัยสำคัญ สิ่งนี้สามารถปรับปรุงได้ถ้าคุณ เปลี่ยนความสูงคงที่เป็นความสูงของเหลว; นั่นหมายถึงความสูงของแท็บที่เปิดอยู่จะขยายหรือหดตามขนาดของเนื้อหาที่พวกเขาถือ.

    ในการทำเช่นนั้นคุณต้อง แก้ไขความสูงคงที่ของเนื้อหาแท็บเป็นความสูงสูงสุด, และ ใช้หน่วยที่เกี่ยวข้อง:

     อินพุต: ทำเครื่องหมาย ~ .tab-content ความสูงสูงสุด: 50em;  

    หากคุณต้องการเข้าใจวิธีการทำงานของวิธีนี้ดีขึ้นคุณสามารถดู Codepen นี้ได้.

    ภาพ: Codepen โดย Jon Yablonski

    3. วิธีการ: เป้าหมาย

    : target เป็นหนึ่งในตัวเลือกหลอกของ CSS3 ด้วยความช่วยเหลือของมันคุณสามารถเชื่อมโยงองค์ประกอบ HTML กับแท็กจุดยึดด้วยวิธีต่อไปนี้:

     

    ชื่อของแท็บ

    เนื้อหาของแท็บ

    เมื่อผู้ใช้คลิกที่ชื่อของแท็บส่วนทั้งหมดจะเปิดขอบคุณ : เป้าหมาย ตัวเลือก pseudo และ URL จะถูกเปลี่ยนเป็นรูปแบบต่อไปนี้: www.some-url.com/#tab-1.

    แท็บเปิดสามารถจัดรูปแบบใน CSS ด้วยความช่วยเหลือของ ส่วน: เป้าหมาย … กฎ. เรามีการสอนที่ดีเกี่ยวกับ hongkiat เกี่ยวกับวิธีที่คุณสามารถสร้างหีบเพลง CSS ที่ดีเพียงอย่างเดียวกับ : เป้าหมาย วิธีการในรูปแบบทั้งแนวตั้งและแนวนอน.

    ข้อบกพร่องหลักของ : เป้าหมาย วิธีการคือ มันเปลี่ยน URL เมื่อผู้ใช้คลิกที่แท็บ. สิ่งนี้มีผลต่อประวัติเบราว์เซอร์และปุ่มย้อนกลับของเบราว์เซอร์จะไม่นำผู้ใช้ไปยังหน้าก่อนหน้า แต่กลับสู่สถานะก่อนหน้าของหีบเพลง.

    4. วิธีการ: โฮเวอร์

    ข้อบกพร่องหลังนี้สามารถเอาชนะได้หากเราใช้ : เลื่อน CSS pseudo-selector แทน : เป้าหมาย, แต่ในกรณีนี้แท็บจะไม่ตอบสนองต่อการคลิก แต่ต่อเหตุการณ์โฮเวอร์ เคล็ดลับที่นี่คือสิ่งที่คุณต้องการ ซ่อนองค์ประกอบที่ไม่ได้ถูกซ่อนไว้, หรือ ลดความกว้างหรือความสูง - ขึ้นอยู่กับเค้าโครงของแท็บ

    องค์ประกอบที่โฮเวอร์ต้องถูกทำให้มองเห็นได้หรือตั้งเป็นความกว้าง / ความสูงเต็มเพื่อให้หีบเพลงทำงาน.

    หีบเพลง CSS-only 3 อันต่อไปนี้ถูกสร้างขึ้นด้วยวิธี: hover คลิกที่ลิงค์ด้านล่างของสกรีนช็อตเพื่อดูโค้ด.

    หีบเพลงภาพแนวนอน

    ภาพ: CodePen โดย vavik

    หีบเพลงที่เบ้

    ภาพ: Codepen โดย Gerald De Leon

    หีบเพลงที่เปิดใช้งานโฮเวอร์พร้อมสถานะเริ่มต้น

    ภาพ: Codepen โดย Cory