โฮมเพจ » การเข้ารหัส » ใส่สไตล์เช็คบ็อกซ์ขั้นสูงด้วย CSS Grid

    ใส่สไตล์เช็คบ็อกซ์ขั้นสูงด้วย CSS Grid

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

    ในขณะที่มีวิธีการที่ค่อนข้างตรงไปตรงมาในการจัดทำฉลากเมื่อมันปรากฏขึ้น หลังจาก ช่องทำเครื่องหมายมันไม่ใช่เรื่องง่ายเมื่อฉลากปรากฏขึ้น ก่อน มัน.

    ใส่สไตล์ของเช็คบ็อกซ์โดยไม่มี CSS Grid

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

    นี่คือรหัสที่คุณคุ้นเคยอยู่แล้ว รูปแบบฉลาก หลังจาก ช่องทำเครื่องหมายที่เลือก:

       
     อินพุต: เครื่องหมาย + + * style me * / 

    ฉลากสไตล์ หลังจาก ช่องทำเครื่องหมาย อาจมีลักษณะเช่นนี้ (อย่างไรก็ตามคุณสามารถใช้กฎสไตล์อื่นได้เช่นกัน):

    โค้ด CSS ด้านบนใช้ Combinator พี่น้องที่อยู่ติดกัน ทำเครื่องหมายโดย + สำคัญ. เมื่อมีช่องทำเครื่องหมายอยู่ใน : การตรวจสอบ สถานะ, องค์ประกอบ หลังจาก มัน (โดยปกติป้ายกำกับ) สามารถจัดรูปแบบได้โดยใช้วิธีนี้.

    ช่างเป็นเทคนิคที่ง่ายและมีประสิทธิภาพ! สิ่งที่ทำได้ อาจ ไปผิดหรือเปล่า? ไม่มีอะไรจนกว่าคุณจะต้องการแสดงฉลาก ก่อน ช่องทำเครื่องหมาย.

    พี่น้องที่อยู่ติดกัน เลือกองค์ประกอบต่อไป; นี่หมายความว่าต้องมีฉลาก หลังจาก ช่องทำเครื่องหมายในซอร์สโค้ด HTML.

    ดังนั้นเพื่อให้ป้ายปรากฏ ก่อน ช่องทำเครื่องหมายที่เป็นของบนหน้าจอเราไม่สามารถย้ายไปข้างหน้าช่องทำเครื่องหมายในซอร์สโค้ดได้ ตัวเลือกพี่น้องก่อนหน้าไม่มีอยู่ใน CSS.

    ซึ่งเหลือตัวเลือกเดียวเท่านั้น: การเปลี่ยนตำแหน่งช่องทำเครื่องหมายและฉลาก การใช้ แปลง หรือ ตำแหน่ง หรือ ขอบ หรือคุณสมบัติ CSS อื่นที่มีพลังงานแบบ Telekinetic บางอย่างดังนั้นฉลากจะปรากฏทางด้านซ้ายของช่องทำเครื่องหมายบนหน้าจอ.

    มีปัญหากับวิธีการแบบดั้งเดิม

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

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

    เราสามารถกำจัดข้อเสียนี้ได้ถ้าเราทำได้ จัดเตรียมเค้าโครงที่เป็นของแข็งสำหรับกล่องกาเครื่องหมายและฉลาก, แทนที่จะวางตำแหน่งอย่างคร่าวๆบนหน้าเว็บ.

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

    ในทางกลับกัน CSS Grid เป็นระบบโครงร่างที่ ไม่ ขึ้นอยู่กับตำแหน่ง / คำสั่งขององค์ประกอบในซอร์สโค้ด.

    ความสามารถในการจัดลำดับใหม่ของเค้าโครงตารางมีผลกับเจตนา เฉพาะการแสดงผลภาพ, ออกจากคำสั่งเสียงและการนำทางตามลำดับของแหล่งที่มา สิ่งนี้ทำให้ผู้เขียนสามารถควบคุมการนำเสนอแบบเห็นภาพในขณะที่ยังคงคำสั่งซื้อต้นฉบับไม่เปลี่ยนแปลง ... - CSS Grid Layout Module Level 1, W3C

    ดังนั้นตาราง CSS เป็นทางออกที่ดีในการ จัดรูปแบบฉลากที่ปรากฏ ก่อน ช่องทำเครื่องหมาย.

    ใส่สไตล์ของเช็คบ็อกซ์ด้วย CSS Grid

    เริ่มจากโค้ด HTML กันก่อน. คำสั่งของช่องทำเครื่องหมายและฉลากจะยังคงเหมือนเดิม. เราแค่เพิ่มทั้งคู่เข้าไปในกริด.

     

    CSS ประกอบดังต่อไปนี้:

     #cbgrid display: grid; ตารางเทมเพลตพื้นที่: "ซ้ายขวา"; ความกว้าง: 150px;  input [type = ช่องทำเครื่องหมาย] กริดพื้นที่: ขวา;  label กริดพื้นที่: left;  

    ฉันจะไม่อธิบายอย่างลึกซึ้งเกี่ยวกับวิธีการทำงานของตาราง CSS ตามที่ฉันเขียนไว้แล้ว บทความโดยละเอียดเกี่ยวกับเรื่อง, ที่คุณสามารถอ่านได้ที่นี่ พื้นฐานบางอย่าง: จอแสดงผล: ตาราง คุณสมบัติเปลี่ยนองค์ประกอบเป็นภาชนะตาราง, ตารางพื้นที่ ระบุพื้นที่กริดที่องค์ประกอบนั้นเป็นของและ ตารางแม่แบบพื้นที่ สร้างเค้าโครงกริดซึ่งประกอบด้วยพื้นที่กริดที่แตกต่างกัน.

    ในรหัสข้างต้นมี พื้นที่สองตาราง: "ซ้าย" และ "ขวา". พวกเขาทำขึ้น สองคอลัมน์ของแถวกริด. ช่องทำเครื่องหมายเป็นของ "ขวา" พื้นที่และฉลากไปที่ "ซ้าย". ต่อไปนี้คือ ลักษณะที่ปรากฏบนหน้าจอ:

    เนื่องจากเราไม่ได้เปลี่ยนการวางตำแหน่งที่เกี่ยวข้องของช่องทำเครื่องหมายและป้ายกำกับในซอร์สโค้ดเราจึงทำได้ ยังคงใช้ combinator พี่น้องที่อยู่ติดกัน:

     อินพุต: เครื่องหมาย + + * style me * / 

    โปรดทราบว่ารายการกริดคือ ปิดกั้นเสมอ; มันจะปรากฏขึ้นพร้อมกล่องโดยรอบที่เรียกว่า กล่องระดับกริด. หากคุณไม่ต้องการสิ่งนั้นตัวอย่างเช่นสำหรับฉลาก, ใส่เสื้อคลุมในรายการนั้น (ห่อไว้ในองค์ประกอบอื่น) และ เปิด wrapper นั้นเข้าไปในพื้นที่กริด.

    แค่นั้นแหละ หวังว่า CSS CSS จะช่วยคุณกำหนดเค้าโครงของช่องทำเครื่องหมายที่หน้าด้านเหล่านั้น.