ブラウザで150 + 150が300ではないのはなぜですか?
質問
次のHTMLを持っています
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<style>
.box {
border: solid black 1px;
padding: 0px;
margin: 0px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<input class="box" style="width:300px;" /><br /><!--CRLF for clarity only-->
<input class="box" style="width:150px;" /><!--CRLF for clarity only-->
<input class="box" style="width:150px;" /><!--CRLF for clarity only-->
</form>
</body>
</html>
レンダリングすると、テキストボックスの2行目は最初の行の1行よりも累積的に長く表示されます。これは、style属性による幅の明示的な設定にもかかわらず
これはなぜ起こるのですか、それを回避できますか?
注:これは、FF3とIE7の両方で同じように動作するようです
解決
jhunterは正しいです。FireFoxにはFirebugが必要であると付け加えます(無料です)。これをインストールするとすぐに自分で理解できたはずです。興味のある要素を調べて、「レイアウト」を見てください。タブ。
他のヒント
幅に含まれないテキストボックスに境界線があります。
実際には、ボックスの幅は+2です。これは、左右の境界線(1ピクセル)がボックスごとに2ピクセル余分にあることを意味します。合計で+6です。
CSS Masteryを読むことをお勧めします。さまざまなブラウザボックスモデルとの多くの違いと、それらがさまざまなブラウザのレイアウトと幅にどのように影響するかを説明しています。
所属していません StackOverflow