2013-04-04 3 views
8

私は奇妙な問題に直面しています。要するにDivのキャンバスに5pxという奇妙なボトムマージンがあります

:私はそれがまったく同じサイズを得ることを期待に対し、我々はdivの中にキャンバスを入れて、キャンバスのサイズを設定

、divがキャンバスより自動的に5pxの大きいです。

この質問は次のとおりですthis answer 私は同じ例を取るので、問題はFirefoxとGoogle Chromeで再現されています。 (他のブラウザを試していない)

<div> 
    <canvas height="300px" width="200px"></canvas> 
</div> 

CSS:

div { 
    border: 2px solid blue; /* demo purposes */ 
    display: inline-block; 
} 
canvas { 
    background-color: khaki; /* demo purposes */ 
} 

結果(div要素内の空白を参照してください):

result

ます。また、これを見ることができます全く同じ例(非常に簡単)this JSfiddle

なぜこれが起こり、どうすればそれを防ぐことができますか?

答えて

14

キャンバス要素のCSSにdisplay: blockを追加することで、そのようなことを防ぐことができます。

すなわち:

canvas { 
    background-color: khaki; /* demo purposes */ 
    display: block; 
} 
+0

おかげで、私は、私は、デフォルトの表示値が何であるかをブロックするための表示を、設定しない場合は、それについての詳細を知りたいと、なぜそれが空きスペースを作るんキャンバスの下に? – Guian

+2

スペースは、インラインフォーマットモデルのために表示されます。それは私が完全に自分自身を理解していない複雑な主題ですが、あなたは[ここ](http://reference.sitepoint.com/css/inlineformatting)と[ここ](http://meyerweb.com/ eric/css/inline-format.html)。 –

+5

+1、あなたは当然のことです!下のスペースはレンダリングされる実際の空白です。 [line-heightを0に設定する](http://jsfiddle.net/kpdgQ/)なら、スペースも消えます。 – Jeroen

関連する問題