表单输入元素不居中

时间:2011-07-07 16:44:00

标签: css centering

我在这里看了很多不同的答案,它们似乎都归结为text-align:以父div的风格为中心。我试过了,它适用于标签,但不是实际的输入元素。

JSFiddle

以下是基本代码:

HTML

<div id="content"> 
  <div id="login_form"> 
    <h2>Log in to DOT Voting</h2> 
    <form>
        <label for="username">Username</label>
        <input type="text" name="username" value=""  />
        <label for="password">Password</label>
        <input type="password" name="password" value=""  />
        <input type="submit" name="submit" value="Log In"  />
  </div>     
</div> 

CSS

#login_form {
    width:90%;
    background-color: #bdd2ff;
    border: 1px solid white;
    margin: 50px auto 0;
    padding: 1em;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    text-align: center;
}

input[type=text], input[type=password] {
    text-align:center;
    display: block;
    margin: 0 0 1em 0;
    width: 90%; 
    border: 1px solid #818181;
    padding: 5px;
}

input[type=submit] , form a {
    border: none;
    margin-right: 1em;
    padding: 6px;
    text-decoration: none;
    font-size: 12px;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    background: #cfdeff;
    color: black;
    box-shadow: 0 1px 0 white;
    -moz-box-shadow: 0 1px 0 white;
    -webkit-box-shadow: 0 1px 0 white;
}

input[type=submit]:hover, form a:hover {
    background: #007cc2;
    cursor: pointer;
}

login_form div以页面为中心,表单标签以div为中心,提交按钮以div为中心。但文本输入框不居中。我该怎么做才能迫使他们居中? (我不在乎输入框的内容是否居中;我只是希望这些框本身位于div中。)

4 个答案:

答案 0 :(得分:22)

添加

margin: auto;

到你的input[type=text], input[type=password]班。

另外请务必删除text-align: center;属性,因为这会导致输入中的文本居中。

JSFiddle

答案 1 :(得分:2)

修改margin元素的input声明,以automargin-left使用margin-right

#login_form {
    width:90%;
    background-color: #bdd2ff;
    border: 1px solid white;
    margin: 50px auto 0;
    padding: 1em;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    text-align: center;
}

input[type=text], input[type=password] {
    text-align:center;
    display: block;
    margin: 0 auto 1em auto;
    width: 90%;  /*280px;*/
    border: 1px solid #818181;
  /*  -moz-border-radius: 1px;
    -webkit-border-radius: 1px; */
    padding: 5px;
}

input[type=submit] , form a {
    border: none;
    margin-right: auto;
    margin-left: auto;
    padding: 6px;
    text-decoration: none;
    font-size: 12px;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    background: #cfdeff;
    color: black;
    box-shadow: 0 1px 0 white;
    -moz-box-shadow: 0 1px 0 white;
    -webkit-box-shadow: 0 1px 0 white;
}

input[type=submit]:hover, form a:hover {
    background: #007cc2;
    cursor: pointer;
}

Updated JS Fiddle

答案 2 :(得分:2)

text-align对块元素不起作用。移除display:block上的input[type=text], input[type=password]或将其更改为display:inline-block。请注意,内联块不适用于&lt; IE7。

或者由于您在输入中声明了宽度,因此您可以移除text-align:center并使用margin: 0 auto 1em auto;

答案 3 :(得分:0)

它基于90%输入[type = text],输入[type =密码] css值居中。您可以使用固定宽度定义,或者对于液体布局,将其设置为100%宽度并调整其边距。