การเข้าใจการเลือกแบบอattribute ของ CSS2
ด้วย Regex: คู่มือที่ครอบคลุม
เมื่อสร้างเว็บไซต์ การจัดรูปแบบองค์ประกอบให้ถูกต้องสามารถเป็นความท้าทายจริงๆ โดยเฉพาะเมื่อพูดถึงการแยกองค์ประกอบเฉพาะตามอattribute ของพวกเขา เมื่อมาตรฐานเว็บมีการพัฒนา คุณอาจพบว่าตนเองสงสัย: ฉันสามารถใช้ CSS เพื่อเลือกองค์ประกอบตามค่าของอattribute ได้อย่างไร? นี่คือจุดที่พลังของการเลือกแบบอattribute ของ CSS2 และ regex เข้ามามีบทบาท
ความท้าทาย
คุณอาจจำช่วงเวลาที่คุณต้องการเพิ่มสไตล์พิเศษให้กับลิงก์ภายนอกทั้งหมดในหน้าเว็บของคุณได้ ยกตัวอย่างเช่น คุณตั้งใจที่จะตกแต่ง <a>
แท็กทั้งหมดที่มีลิงก์ HTTPS โดยการใช้ไอคอนข้างๆ พวกเขา คุณอาจจะได้เจอกับวิธีการที่ดูเหมือนแบบนี้:
a[href=http] {
background: url(external-uri);
padding-left: 12px;
}
อย่างไรก็ตาม คุณพบว่าช่องทางนี้ไม่ได้ผลตามที่คาดหวัง แล้วคุณจะเลือก <a>
แท็กทั้งหมดที่มีอattribute href
เริ่มต้นด้วย “http” ได้อย่างถูกต้องได้อย่างไร?
วิธีแก้ปัญหา: การเลือกแบบอattribute
การเข้าใจการเลือกแบบอattribute
CSS มีวิธีการในการเลือกองค์ประกอบตามอattribute ของพวกเขา แม้ว่าจะไม่ได้รองรับ regex อย่างเคร่งครัด นี่คือการแบ่งประเภทของประเภทการเลือกแบบอattribute ที่แตกต่างกัน:
-
การเลือกแบบอattribute ทั่วไป:
- ไวยากรณ์:
[att]
- จะจับคู่กับองค์ประกอบใดๆ ที่มีอattribute ที่ระบุ ไม่สนใจค่าของมัน
- ไวยากรณ์:
-
การเลือกแบบตรงตามค่า:
- ไวยากรณ์:
[att=val]
- จะเลือกองค์ประกอบที่ค่าอattribute เท่ากับค่าที่ระบุอย่างตรง
- ไวยากรณ์:
-
การเลือกแบบคำ:
- ไวยากรณ์:
[att~=val]
- จะจับคู่กับองค์ประกอบที่ค่าอattribute เป็นลิสต์ของ “คำ” ที่คั่นด้วยช่องว่าง ซึ่งหนึ่งในนั้นต้องตรงกับค่าที่ระบุ
- ไวยากรณ์:
-
การเลือกแบบรายการที่มีขีดเชื่อม:
- ไวยากรณ์:
[att|=val]
- จะจับคู่กับองค์ประกอบที่อattribute เริ่มต้นด้วยค่าที่ระบุ ตามด้วยขีดเชื่อม นี่มักจะใช้สำหรับอattribute ที่ระบุการจับคู่ภาษา
- ไวยากรณ์:
การเลือกลิงก์ที่เริ่มต้นด้วย http
เพื่อเลือกลิงก์ทั้งหมดที่เริ่มต้นด้วย “http” คุณต้องใช้ไวยากรณ์ CSS ต่อไปนี้:
a[href^=http] {
background: url(external-uri);
padding-left: 12px;
}
นี่คือสิ่งที่เกิดขึ้น:
- เครื่องหมาย
^=
หมายถึง “เริ่มต้นด้วย” ดังนั้นลิงก์ใดๆ ที่มีhref
เริ่มต้นด้วย “http” จะได้รับการจัดรูปแบบตามที่ระบุ
ความเข้ากันได้กับเว็บเบราว์เซอร์
สิ่งสำคัญที่จะต้องทราบคือ แม้ว่า CSS3 จะมีตัวเลือกที่ล้ำสมัยมากขึ้น แต่ไม่ได้หมายความว่าทุกเบราว์เซอร์จะสนับสนุนตัวเลือกเหล่านี้ในลักษณะเดียวกัน สำหรับตัวอย่าง ตัวเลือก ^=
อาจจะไม่ได้รับการสนับสนุนในเวอร์ชันเก่าของ Internet Explorer ดังนั้น การปฏิบัติที่ดีที่สุดจะรวมถึงการตรวจสอบความเข้ากันได้ในปัจจุบันและอาจจะใช้การตรวจจับฟีเจอร์สำหรับสไตล์สำรอง
การทดสอบการเลือกของคุณ
คุณยังสามารถทดสอบว่าตัวเลือกบางอย่างทำงานได้ดีเพียงใดในเบราว์เซอร์ที่แตกต่างกัน โดยใช้เครื่องมือเช่น CSS Selector Test Suite ซึ่งจะช่วยให้คุณประเมินความเข้ากันได้ก่อนที่จะใช้งานสไตล์ของคุณ
สรุป
การเลือกแบบอattribute ของ CSS2 เสนอวิธีการที่ทรงพลังในการจัดรูปแบบองค์ประกอบตามอattribute โดยไม่จำเป็นต้องเปลี่ยนแปลงโครงสร้าง HTML โดยการเข้าใจการเลือกที่มีอยู่ต่างๆ โดยเฉพาะความสามารถในการจับคู่กับองค์ประกอบที่มีอattribute เริ่มต้นด้วยค่าที่เฉพาะเจาะจง คุณสามารถสร้างหน้าจอเว็บที่น่าสนใจโดยไม่จำเป็นต้องแก้ไข HTML ที่อยู่เบื้องหลัง
อย่าลืมดำดิ่งลงไปในข้อกำหนดอย่างเป็นทางการสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเลือก CSS และตรวจสอบสไตล์ของคุณในเบราว์เซอร์ต่างๆ เพื่อให้แน่ใจว่าประสบการณ์ของผู้ใช้มีความสอดคล้องกัน