すべてのブラウザは、内部に魔法のハードコードされたパディングを追加しているようです<input type="text">。一部のブラウザー (IE、Safari、Chrome) では、入力ボックスの高さが少し高くなりますが、通常の HTML 要素のように適切に上部に配置されます。私は余分な高さと一緒に暮らすことができます。しかし、一部のブラウザー (Firefox および Opera) は正しく動作せず、テキストを垂直方向に揃えるか、その上に余分なパディングを追加しようとします。最近のブラウザーでは、テキストボックスを HTML と同じようにレイアウトしたり、魔法の書式を追加したりすることができないことに驚いています。私は何か間違ったことをしていますか?いくつかのトリックがありませんか?それらは私を助けることができるいくつかの独自のCSSプロパティですか? Firefox の CSS ドキュメントをざっと見ましたが、何も見つかりませんでした。または、代わりに編集可能な HTML を使用することもできます<input type="text">。
問題を示すスニペットを次に示します。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Test</title>
<style type="text/css">
body, input {
font-family: sans-serif;
font-size: 16pt;
color: White; }
#textbox {
position: absolute;
left: 20px;
top: 20px;
width: 100px;
background-color: #A5C9E2;
line-height: 16pt;
padding: 0px;
margin: 0px;
border-width: 0px; }
#box {
position: absolute;
left: 120px;
top: 20px;
width: 100px;
background-color: #AFD66A;
line-height: 16pt; }
</style>
</head>
<body>
<input type="text" id="textbox" value="Hello">
<div id="box">Hello</div>
</body>
</html>
編集: Firefox で-moz-outlineと-moz-box-sizingを少し試してみましたが(念のため)、それらの値のいずれも余分なパディングを削除しません。