ปรับปรุง
เนื่องจากไม่มีใครใช้ IE6 และ 7 อีกต่อไปฉันจะนำเสนอวิธีแก้ปัญหาที่แตกต่าง:
คุณไม่จำเป็นต้องแฮ็คอีกต่อไปเพราะ IE8 รองรับด้วยตัวเอง
สำหรับผู้ที่ต้องรองรับบราวเซอร์ยุคหินก่อน IE8 (ไม่ใช่ว่า IE8 จะเก่าขนาดนั้นนะไอ ):
สำหรับบัญชีของ IE version control ให้ใช้ Conditional Class ใน<html>
tag เช่น Paul Irish States ในบทความของเขา
<!--[if IE 7]><html class="no-js lt-ie9 lt-ie8"><![endif]-->
<!--[if IE 8]><html class="no-js lt-ie9"><![endif]-->
<!--[if gt IE 8]><!--><html class="no-js"><!--<![endif]-->
ด้วยสิ่งนี้คุณจะมีคลาสต่างๆใน html-tag สำหรับเบราว์เซอร์ IE ที่แตกต่างกัน
CSS ที่คุณต้องการมีดังนี้
.inline-block {
display: inline-block;
}
.lt-ie8 .inline-block {
display: inline;
zoom: 1;
}
สิ่งนี้จะตรวจสอบความถูกต้องและคุณไม่จำเป็นต้องมีไฟล์ CSS เพิ่มเติม
คำตอบเก่า
.frame-header
{
background:url(images/tab-green.png) repeat-x left top;
height:25px;
display:-moz-inline-box; /* FF2 */
display:inline-block; /* will also trigger hasLayout for IE6+7*/
}
/* Hack for IE6 */
* html .frame-header {
display: inline; /* Elements with hasLayout and display:inline behave like inline-block */
}
/* Hack for IE7 */
* + html .frame-header {
display: inline; /* Elements with hasLayout and display:inline behave like inline-block */
}