นี่เป็นอีกวิธีที่สะอาด:
sub, sup {vertical-align: baseline; position: relative; font-size: 70%;} /* 70% size of its parent element font-size which is good. */
sub {bottom: -0.6em;} /* use em becasue they adapt to parent font-size */
sup {top: -0.6em;} /* use em becasue they adapt to parent font-size */
ด้วยวิธีนี้คุณยังคงสามารถใช้แท็กsup / sub ได้แต่คุณแก้ไขพฤติกรรมที่ไม่ดีของมันเพื่อทำให้ความสูงของบรรทัดในย่อหน้าหมดไป
ดังนั้นตอนนี้คุณสามารถทำได้:
<p>This is a line of text.</p>
<p>This is a line of text, <sub>with sub text.</sub></p>
<p>This is a line of text, <sup>with sup text.</sup></p>
<p>This is a line of text.</p>
และความสูงของบรรทัดย่อหน้าของคุณไม่ควรเมา
ทดสอบบน IE7, IE8, FF3.6, SAFARI4, CHROME5, OPERA9
ฉันทดสอบโดยใช้ p {line-height: 1.3;}
(นั่นคือความสูงของเส้นที่ดียกเว้นว่าคุณต้องการให้เส้นของคุณติดกันมากเกินไป) และมันก็ยังใช้งานได้เพราะ "-0.6em" นั้นเป็นจำนวนเล็กน้อยที่มีความสูงของบรรทัดนั้นข้อความย่อย / ย่อยจะพอดี และอย่าข้ามกัน
ลืมรายละเอียดที่อาจเกี่ยวข้องฉันใช้ DOCTYPE ในบรรทัดแรกของหน้าเสมอ (โดยเฉพาะฉันใช้ HTML 4.01 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
) ดังนั้นฉันจึงไม่ทราบว่าโซลูชันนี้ทำงานได้ดีหรือไม่เมื่อเบราว์เซอร์อยู่ในโหมด quirkmode (หรือไม่ใช่โหมดมาตรฐาน) เนื่องจากไม่มี DOCTYPE หรือ DOCTYPE ที่ไม่เปิดใช้งานโหมดมาตรฐาน / เกือบมาตรฐาน