การแก้ไขปัญหา YUI Reset CSS: วิธีการรักษา <em> ให้เอียงและ <strong> ให้หนา

เมื่อทำงานกับการพัฒนาเว็บ คุณอาจพบว่าตนเองกำลังใช้ YUI’s Reset CSS เพื่อจุดเริ่มต้นที่สอดคล้องกันในทุกเว็บเบราว์เซอร์ แม้ว่าสิ่งนี้จะเป็นประโยชน์ แต่ก็อาจนำไปสู่พฤติกรรมที่ไม่คาดคิดในรูปแบบข้อความของคุณ ปัญหาที่พบบ่อยคือการที่ Reset CSS เปลี่ยนแปลงแท็ก <em> และ <strong> ทำให้ไม่แสดงผลตามที่ตั้งใจ

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

การทำความเข้าใจปัญหา

YUI’s Reset CSS จะเปลี่ยนการจัดรูปแบบเริ่มต้นของเบราว์เซอร์ ซึ่งบางครั้งอาจนำไปสู่ความยุ่งยาก:

เกิดอะไรขึ้น?

บรรทัดเฉพาะใน YUI Reset CSS ที่ทำให้เกิดปัญหาคือ:

address,caption,cite,code,dfn,em,strong,th,var {
    font-style: normal;
    font-weight: normal;
}

ในที่สุด ทั้งแท็ก <em> และ <strong> จะสูญเสียการจัดรูปแบบเริ่มต้น:

  • แท็ก <em> ซึ่งควรจะแสดงเป็นเอียง กลับปรากฏเป็นข้อความธรรมดา
  • แท็ก <strong> ซึ่งควรจะแสดงเป็นหนา ก็แสดงในน้ำหนักฟอนต์มาตรฐานเช่นเดียวกัน

ข้อขัดแย้ง

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

strong, b {
  font-weight: bold;
}

em, i {
  font-style: italic;
}

ปัญหารุนแรงขึ้นเมื่อคุณใช้แท็กทั้งสองร่วมกัน ตัวอย่างเช่น:

<strong>This is bold, <em>and this is italic, but not bold</em></strong>

ในที่นี้ แม้ว่ากฎสไตล์ของคุณสำหรับ <strong> จะทำงาน แต่กฎ Universal Reset CSS จะคืนค่าของ <em> และยกเลิกเอฟเฟกต์การเอียง

วิธีแก้ไข

เพื่อให้แน่ใจว่าสไตล์ที่คุณกำหนดไว้จะมีความสำคัญมากกว่าค่าเริ่มต้นของ YUI Reset CSS คุณจะต้องปรับเปลี่ยนกฎ CSS ของคุณ นี่คือวิธีการทำ:

ขั้นตอนที่ 1: เปลี่ยนแปลงด้วยความเฉพาะเจาะจง

คุณสามารถเพิ่มความเฉพาะเจาะจงให้กับกฎการจัดรูปแบบของคุณได้ดังนี้:

strong, b, strong *, b * { 
  font-weight: bold; 
}

em, i, em *, i * { 
  font-style: italic; 
}

การเปลี่ยนแปลงนี้จะทำให้ไม่เพียงแต่แท็ก <strong> และ <b> ถูกจัดรูปแบบอย่างเหมาะสม แต่เอลิเมนต์ที่ซ้อนอยู่ภายในพวกมันก็จะถือรูปแบบเดียวกันด้วยเช่นกัน

ขั้นตอนที่ 2: บังคับสไตล์ด้วย !important

หากคุณยังสนับสนุนเบราว์เซอร์รุ่นเก่าเช่น IE7 คุณอาจจำเป็นต้องบังคับให้สไตล์ของคุณใช้ !important ไลบรารีของคุณแบบนี้:

strong, b, strong *, b * { 
  font-weight: bold !important; 
}

em, i, em *, i * { 
  font-style: italic !important; 
}

ขั้นตอนที่ 3: ทดสอบสไตล์ของคุณ

เมื่อคุณได้ทำการเปลี่ยนแปลงเหล่านี้ให้แน่ใจว่าคุณได้ทดสอบสไตล์ของคุณทั้งในเบราว์เซอร์สมัยใหม่และเบราว์เซอร์รุ่นเก่าเพื่อยืนยันว่า ทุกอย่างแสดงได้ตามที่คาดหวัง

นี่คือตัวอย่างที่รวดเร็วให้คุณลอง:

ตัวอย่าง CSS

/* YUI styles */
address,caption,cite,code,dfn,em,strong,th,var {
  font-style: normal;
  font-weight: normal;
}

/* Your styles */
strong, b, strong *, b * {
  font-weight: bold;
}

em, i, em *, i * {
  font-style: italic;
}

ตัวอย่าง HTML

<strong>Bold</strong> - <em>Italic</em> - <strong>Bold and <em>Italic</em></strong>

สรุป

โดยการติดตามขั้นตอนที่ระบุในบล็อกนี้ คุณสามารถที่จะแก้ไขพฤติกรรมเริ่มต้นที่ถูกแนะนำโดย YUI’s Reset CSS ได้สำเร็จ รักษาแท็ก <em> และ <strong> ของคุณให้มีการจัดรูปแบบอย่างถูกต้อง

หากคุณประสบปัญหาเช่นนี้ในอนาคต กรุณาจำไว้ว่าความเฉพาะเจาะจงและคำสั่ง !important สามารถเป็นเครื่องมือที่มีพลังในอาร์เซนัลการจัดรูปแบบ CSS ของคุณ

ขอให้สนุกกับการเขียนโค้ด!