ดูที่ CSS3 ตัวเลือกโครงสร้างชนิดแรก
สิ่งหนึ่งที่ฉันชอบเกี่ยวกับ CSS3 คือการเพิ่มตัวเลือกใหม่ที่ช่วยให้เราสามารถกำหนดเป้าหมายองค์ประกอบเฉพาะโดยไม่ต้องพึ่งพา ชั้น
, รหัส
หรือแอตทริบิวต์องค์ประกอบอื่น ๆ และสิ่งที่เราจะกล่าวถึงในที่นี้คือตัวเลือกต่อไปนี้, : ครั้งแรกของชนิด.
: ครั้งแรกของชนิด
ตัวเลือกจะกำหนดเป้าหมายเด็กคนแรกขององค์ประกอบที่ระบุเช่นตัวอย่างข้อมูลด้านล่างจะกำหนดเป้าหมายไปที่ลูกคนแรก H2
บนหน้าเว็บ.
h2: การประกาศสไตล์ครั้งแรก / * สไตล์ * /
: ครั้งแรกของชนิด
ก็เท่ากับ : ที่ n ของประเภท (1)
, ดังนั้นแทนที่จะเลือกเท่านั้น เป็นครั้งแรก ของประเภทเราสามารถเลือกที่สองที่สามและต่อไป ตัวอย่างต่อไปนี้จะกำหนดเป้าหมายที่สอง H2
องค์ประกอบบนหน้าเว็บ.
h2: nth-of-type (2) / * การประกาศสไตล์ * /
: ครั้งแรกของชนิด” VS. “: ครั้งแรกที่เด็ก”
ดูเหมือนว่าตัวเลือกสองตัวนี้กำลังทำสิ่งเดียวกัน แต่ไม่ใช่ในกรณีนี้ มาดูการสาธิตต่อไปนี้:
สมมติว่าเรามีองค์ประกอบห้าย่อหน้าที่อยู่ภายใน div
, อย่างนี้:
วรรค 1
วรรค 2
วรรค 3
วรรค 4
วรรค 5
ตอนนี้เราต้องการเลือกย่อหน้าแรกโดยใช้ : ครั้งแรกที่เด็ก
ผู้เลือก.
p: ลูกคนแรก padding: 5px 10px; รัศมี - ชายแดน: 2px; พื้นหลัง: # 8960a7; สี: #fff; เส้นขอบ: 1px solid # 5b456a;
และตามที่เราคาดไว้ย่อหน้าแรกจะถูกเลือกเรียบร้อยแล้ว.
- : การสาธิตลูกคนแรก
อย่างไรก็ตามเมื่อเรา เพิ่มองค์ประกอบที่แตกต่างกันก่อน ย่อหน้าแรกสมมุติว่า h1
, ชอบตัวอย่างด้านล่าง:
หัวข้อ 1
วรรค 1
วรรค 2
วรรค 3
วรรค 4
วรรค 5
ย่อหน้าแรกจะไม่ถูกเลือก, เป็นเด็กคนแรกที่อยู่ภายใน div
คือ ไม่มีย่อหน้าอีกต่อไป, แต่ตอนนี้เป็น h1
.
ดังนั้นนี่คือสถานการณ์ที่ : ครั้งแรกของชนิด
ตัวเลือกมาเพื่อแก้ไขปัญหา.
p: first-of-type padding: 5px 10px; รัศมี - ชายแดน: 2px; พื้นหลัง: # a8b700; สี: #fff; เส้นขอบ: 1px solid # 597500;
- : การสาธิตชนิดแรก
“สุดท้าย” ผู้เลือก
อยู่ที่ไหน “เป็นครั้งแรก”, แล้วก็จะมี “สุดท้าย”.
การย้อนกลับของตัวเลือกทั้งสองที่เราได้กล่าวถึงข้างต้นคือตัวเลือกสองตัวต่อไปนี้ :ลูกคนสุดท้อง
และ : สุดท้ายของชนิด
. โดยทั่วไปแล้วพวกเขาจะเหมือนกับสองข้างต้นยกเว้นพวกเขาจะกำหนดเป้าหมาย ลูกคนสุดท้ายขององค์ประกอบที่ระบุ.
ตัวอย่างเช่นตัวอย่างนี้ด้านล่างจะกำหนดเป้าหมายย่อหน้าสุดท้ายภายใน div.
p: ลูกคนสุดท้าย padding: 5px 10px; รัศมี - ชายแดน: 2px; พื้นหลัง: # 8960a7; สี: #fff; เส้นขอบ: 1px solid # 5b456a;
- : การสาธิตลูกคนสุดท้าย
และตัวอย่างนี้จะกำหนดเป้าหมายย่อหน้าสุดท้ายในสถานการณ์เดียวกับที่เราได้กล่าวถึงข้างต้น ในครั้งนี้ ตามด้วยองค์ประกอบอื่นโดยตรง.
p: ประเภทสุดท้าย padding: 5px 10px; รัศมี - ชายแดน: 2px; พื้นหลัง: # a8b700; สี: #fff; เส้นขอบ: 1px solid # 597500;
- : การสาธิตชนิดสุดท้าย
The Selectivizr
เช่นเดียวกับคุณสมบัติใหม่อื่น ๆ ใน CSS3 ตัวเลือกเหล่านี้ไม่ได้รับการสนับสนุนในเบราว์เซอร์เก่าส่วนใหญ่ Internet Explorer 6 ถึง 8, ด้วยข้อยกเว้นสำหรับ : ครั้งแรกที่เด็ก
ตัวเลือกตามที่ได้รับการเพิ่มตั้งแต่ CSS2.1 มันญาติ :ลูกคนสุดท้อง
ถูกเพิ่มใน CSS3 เท่านั้น.
ดังนั้นหากตัวเลือกทั้งหมดที่เรากล่าวถึงในที่นี้จำเป็นสำหรับเว็บไซต์ของคุณจริงๆคุณสามารถใช้ไลบรารี JavaScript ที่เรียกว่า Selectivizr เพื่อจำลองการทำงานของตัวเลือก CSS3 เหล่านั้น.
Selectivizr นั้นขึ้นอยู่กับไลบรารี JavaScript อื่นเพื่อให้สามารถทำงานได้เช่น jQuery, Dojo, Prototype และ MooTools และจากตารางเปรียบเทียบในเว็บไซต์ทางการ MooTools ดูเหมือนว่าจะสามารถจัดการกับตัวเลือกทั้งหมดได้.
ดังนั้นขอรวมไว้พร้อมกับ Selectivizr ดังนี้
ความคิดเห็นตามเงื่อนไขข้างต้นจะช่วยให้มั่นใจได้ว่าห้องสมุดเหล่านี้จะโหลดใน Internet Explorer 8 และด้านล่างเท่านั้น.
สุดท้ายคุณสามารถดูการสาธิตจากลิงค์ต่อไปนี้และตอนนี้มันควรจะทำงานได้ทั้งในเบราว์เซอร์ที่ทันสมัยและเก่า (IE8 และด้านล่าง) คุณยังสามารถดาวน์โหลดไฟล์ต้นฉบับเพื่อตรวจสอบเพิ่มเติมได้ สนุก.
- การสาธิต
- แหล่งดาวน์โหลด