回答:
IE7 display: inline-block;
ハックは次のとおりです。
display: inline-block;
*display: inline;
zoom: 1;
デフォルトでは、IE7 inline-block
は自然inline
な要素のみをサポートします(Quirksmode互換性テーブル)でため、このハックは他の要素に対してのみ必要です。
zoom: 1
トリガーにありhasLayout
振る舞い、そして我々は、使用つ星ホテルにハックを設定するためdisplay
にinline
(新しいブラウザがそれを適用されません)のみIE7で下を。hasLayout
そして、inline
一緒に基本的にトリガされますinline-block
、我々は満足しているので、IE7で動作します。
このCSSは検証されないため、スタイルシートが混乱する可能性があるため、条件付きコメントで IE7のみのスタイルシートを使用することをお勧めします。
<!–-[if IE 7]>
<link rel="stylesheet" href="ie7.css" type="text/css" />
<![endif]–->
*zoom:1;
はhasLayoutをトリガーすることを好みます。それはより明確だだから *zoom
とは*display
一緒に行く
IE6と7を使用する人はもういないので、私は別のソリューションを
紹介します。IE8 がそれ自体でサポートしているため、ハッキングはもう必要ありません。
IE8より前の石器時代のブラウザーをサポートする必要がある場合(IE8がそれほど古く、咳が多すぎるということではありません):
IEのバージョン管理の説明として、Paul Irishの<html>
ようなタグでいくつかの条件付きクラスを使用します。で述べて彼の記事
<!--[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]-->
これにより、さまざまなIEブラウザーのhtmlタグにさまざまなクラスがあります。
必要な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 */
}
inline-block
を追加しframe-header
ます。または、CSSセレクターで変更inline-block
しframe-header
ます。
IE7は「インラインブロック」を適切にサポートしていません。詳細はこちら:LINK
使用できるもの: 'inline'。
正確に何を達成しようとしていますか?私たちに例を作ってここに入れてください:http : //jsfiddle.net/