องค์ประกอบ bdi และ bdo
แยกและเขียนทิศทางข้อความทับด้วย bdi และ bdo
องค์ประกอบ bdi และ bdo เป็นบทเรียน HTML Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน HTML Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดจึงต้องใช้องค์ประกอบควบคุมทิศทางสองทิศทาง
อัลกอริทึมข้อความสองทิศทางของ Unicode มักจัดการข้อความที่มีหลายทิศทางได้ดี แต่บางครั้งจำเป็นต้องเขียนทับการทำงานของอัลกอริทึม เช่น แยกชื่อที่ผู้ใช้ป้อนเพื่อไม่ให้เปลี่ยนทิศทางของข้อความรอบข้าง หรือบังคับทิศทางเฉพาะในบล็อกโค้ด
องค์ประกอบ bdi
<bdi> (การแยกข้อความสองทิศทาง) จะถือว่าเนื้อหาภายในเป็นบริบทข้อความสองทิศทางที่แยกออกมา ทิศทางของข้อความภายใน <bdi> จะไม่ส่งผลต่อทิศทางของข้อความภายนอก และในทางกลับกัน
<p>User <bdi>{username}</bdi> posted at 12:34</p>กรณีการใช้งาน: ชื่อผู้ใช้
รายการผู้ใช้ที่มีทั้งชื่อภาษาอังกฤษและภาษาอาหรับอาจทำให้ชื่อภาษาอาหรับทำให้ทิศทาง RTL รั่วไหลไปยังข้อความรอบข้าง การครอบชื่อแต่ละชื่อด้วย <bdi> จะแยกทิศทางออกจากกัน ทำให้เค้าโครงคงที่ไม่ว่าชื่อนั้นจะมีทิศทางใด
องค์ประกอบ bdo
<bdo dir="rtl"> (การเขียนทับข้อความสองทิศทาง) จะบังคับทิศทางเฉพาะให้กับเนื้อหาภายใน โดยเขียนทับการแก้ทิศทางตามธรรมชาติของข้อความสองทิศทาง ใช้เมื่อคุณต้องการแสดงข้อความในทิศทางที่ไม่เป็นธรรมชาติ เช่น แสดงตัวอย่างโค้ดเป็น LTR ภายในหน้า RTL
<bdo dir="ltr">someEnglishCode();</bdo>ความแตกต่างจาก dir
แอตทริบิวต์ dir บนองค์ประกอบทั่วไปจะกำหนดทิศทางพื้นฐาน และอัลกอริทึมข้อความสองทิศทางยังคงทำงานภายใน <bdo> จะปิดใช้งานอัลกอริทึมข้อความสองทิศทางสำหรับเนื้อหาภายใน ทำให้อักขระทุกตัวไหลไปตามทิศทางที่ระบุอย่างเคร่งครัด ไม่ว่าสคริปต์ของอักขระนั้นจะเป็นอะไร
เมื่อใดควรใช้ bdi
ใช้ทุกครั้งที่ฝังข้อความที่ผู้ใช้สร้างขึ้นลงในส่วนติดต่อรอบข้าง เช่น ชื่อในส่วนหัวแชต ชื่อผู้ใช้ในความคิดเห็น หรือชื่อเรื่องในรายการฟีด การแยกทิศทางรับประกันว่าเค้าโครงส่วนติดต่อจะไม่ได้รับผลกระทบจากสิ่งที่ผู้ใช้พิมพ์
เมื่อใดควรใช้ bdo
ไม่ค่อยใช้ โดยการใช้งานที่ถูกต้องหลัก ๆ คือใช้สอนเรื่องข้อความสองทิศทาง (แสดงให้เห็นว่าสตริงมีลักษณะอย่างไรเมื่อกลับด้าน) หรือใช้แก้ไขข้อมูลที่กำกับแท็กไม่ถูกต้อง ซึ่งการจัดลำดับข้อความสองทิศทางตามธรรมชาติทำให้ลำดับที่แสดงผลผิด
ใช้ร่วมกับ dir="auto"
สำหรับเนื้อหาที่ผู้ใช้ป้อนซึ่งไม่ทราบทิศทาง ให้ใช้ <bdi dir="auto"> ร่วมกันเพื่อความปลอดภัยสองชั้น: การตรวจจับอัตโนมัติจะเลือกทิศทางพื้นฐานจากเนื้อหา และ bdi จะป้องกันไม่ให้ทิศทางนั้นรั่วไหลไปยังข้อความรอบข้าง
การรองรับของเบราว์เซอร์
bdi และ bdo รองรับในเบราว์เซอร์รุ่นใหม่ทุกชนิด ทั้งสองเป็นส่วนหนึ่งของ HTML5 และมีความเสถียรมาหลายปีแล้ว IE รุ่นเก่าไม่มี bdi แต่ล้าสมัยในทางการใช้งานแล้ว เว็บไซต์ยุคใหม่จึงใช้ bdi ได้อย่างอิสระ
การเข้าถึง
โปรแกรมอ่านหน้าจอรองรับการแยกทิศทางข้อความ: ข้อความภายใน <bdi> จะถูกอ่านด้วยเสียงของภาษานั้นเอง (เมื่อกำหนด lang ไว้) โดยบริบทโดยรอบจะไม่ส่งผลแทรกเข้ามา bdi ยังช่วยให้ระบบแปลงข้อความเป็นเสียงพูดสร้างช่วงหยุดที่เหมาะสมรอบวลีที่แยกออกมาได้ด้วย
รูปแบบที่พบบ่อย: i18n ในแม่แบบ
แม่แบบที่มีตัวแทนค่า ("Welcome, {name}") ควรครอบตัวแทนค่านั้นด้วย <bdi>: Welcome, <bdi>{name}</bdi> ชื่อผู้ใช้ใด ๆ — ไม่ว่าจะเป็นภาษาอังกฤษ ภาษาอาหรับ หรือแบบผสม — จะแสดงผลได้อย่างถูกต้องโดยไม่รบกวนส่วนอื่นของคำทักทาย
ตรวจสอบความรู้
ความแตกต่างในทางปฏิบัติระหว่าง กับ คืออะไร
สรุป
bdi แยกทิศทางข้อความของส่วนหนึ่งไม่ให้ส่งผลต่อบริเวณโดยรอบ — ใช้กับเนื้อหาที่ผู้ใช้ป้อนและนำมาแทรก เช่น ชื่อในแม่แบบ bdo บังคับทิศทางที่กำหนดโดยแทนที่การจัดทิศทางสองทิศทาง จึงแทบไม่จำเป็นนอกตัวอย่างเพื่อการสอน ใช้ bdi ร่วมกับ dir="auto" เพื่อจัดการข้อความที่ผู้ใช้ป้อนซึ่งไม่ทราบภาษาได้อย่างปลอดภัย
คำถามที่พบบ่อย
บทเรียน “องค์ประกอบ bdi และ bdo” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “องค์ประกอบ bdi และ bdo” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส HTML Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “องค์ประกอบ bdi และ bdo”
แยกและเขียนทิศทางข้อความทับด้วย bdi และ bdo คุณปฏิบัติ HTML Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน HTML Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน HTML Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “องค์ประกอบ bdi และ bdo” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน HTML Academy นี้ได้ไหม
ได้ บทเรียน HTML Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- แอตทริบิวต์ lang และโปรแกรมอ่านหน้าจอ
- dir=rtl สำหรับข้อความจากขวาไปซ้าย
- องค์ประกอบ bdi และ bdo
- charset และการจัดการ Unicode: อักขระพิเศษ