2012-01-08 9 views
1

表示プロパティをインラインに設定しようとしています(または余白が必要な場合はインラインブロック) IEで正しく(ほとんどの場合はそうです)。 私の状況はこれです - アイテムコンテナが水平に配置されたインラインアイテムを含むワークスペースを想像してください。これらのアイテムは、テキストやイメージのようなものを保持することができますが、分子や分母自体がアイテムコンテナで、より水平なアイテムを含む '分数'などの複合型にもなります。増加し、それらがネストされたコンテンツを含む可能性があるため、私はアイテムまたはアイテムコンテナの固定幅または高さを望んでいない、明らかにインラインの親の中のインライン要素と混在したときに、HTML要素の一部が「ブロック」として動作するようにする

<div class='item-container'> 
    <div id='statictext' class='item'>x = </div> 

    <div id='fraction' class='item'> 
     <div id='numerator' class='item-container'>...</div> 
     <hr/> 
     <div id='denominator' class='item-container'>...</div> 
    </div> 
</div> 

したがって、たとえば、私はHTMLを持っているかもしれません(例えば、別の小数部の中の小数部を想像するなど)必要なスペースの量と同様に、静的なテキスト 'item'の幅を1行のテキスト、つまりインラインを含むのに十分な大きさにしたい場合。

インラインの 'item'/'item-container'要素内にブロック要素を入れないことは難しいと思います。例えば、小数部の<hr>などです。アイテムの内容の残りの幅が計算された後に全幅を使用する 'アイテム'の割合 ブロック要素の表示属性をinlineまたはinline-blockに設定すると、実際のブロック項目をインライン1行に入れるのは無効な構文であることが分かりますが、少なくともFirefox/Chromeでは正しく動作します。しかし、悲しいかな、IEではなく。

適切な修正はありますか?

EDIT:私は実際にFirefoxなどで動作するように 'item'と 'item-container'をインラインブロック(適切なIEのハックあり)で使用しましたが、それでもIEはインラインその子の1つがブロックなので、ブロックに変換されます。

答えて

0

<hr>を使用しないでください。 text-decoration: underlineを使用して線を描画するか、下の枠線を使用するか、画像を使用して1つの線を描くことができます(たとえば、1ピクセルの画像を希望の幅に伸ばします)。次に、インライン要素を扱うことができます。

+0

ありがとうございました。私はすべての内部要素をインライン化しようと努力してきましたが、使用されているスペースが何であっても要素を満たすためのブラウザ間でサポートされている方法ではありません。分数線を使用すると、分母が分子よりも広い場合、分子上のborder-bottomを使用するかtext-decorationを使用しても正しい結果が得られるとは限りません。 – user1137080

関連する問題