我相信這是瀏覽器計算輸入[type = submit]尺寸的方式。我嘗試應用一些重置,但那些似乎也沒有工作。我在Mac上使用Chrome瀏覽器,在您的JSBin示例中,實時預覽看起來很好,但「渲染」驗證了您的問題。
我試過jsfiddle.net,它顯示了同樣的問題。這是一個解決方法,如果這將爲您的應用程序飛行。只需刪除提交按鈕和風格的邊框和背景包裝DIV代替,然後把一個點擊監聽器的div來提交表單:
CSS:
form {
width: 500px;
padding:0;
margin:0;
}
form div, form div input {
height:20px;
margin-bottom:4px;
}
input[type=text] {
width: 100%;
border: 1px solid red;
padding: 0;
margin: 0;
}
#submit input{
background:transparent;
margin:auto;
border:none;
}
#submit{
text-align:center;
background-color:#CCC;
width: 100%;
border: 1px solid red;
padding: 0;
margin: 0;
cursor:pointer;
}
JQUERY:
$('#submit').click(function(){
$('#login').submit();
});
$('#login').submit(function(){
alert('form submitted');
return false;
});
http://jsfiddle.net/pZcx4/
備選NATIVE JS:
function submit_form()
{
alert('form submitted');
return false;
// when you are ready, do this: document.forms['login'].submit();
}
document.getElementById('submit').addEventListener('click',submit_form,false);
http://jsfiddle.net/pZcx4/3/
某處可能有填充或邊距。嘗試給予'{padding:0px; margin:0px};' – Balanivash
jsbin示例將margin和padding設置爲0 – ScottE
有趣。當我用jsbin的實時預覽查看代碼時,它看起來沒問題。但它似乎錯誤時,只是使用渲染功能 –