表单输入元素不居中

Posted

技术标签:

【中文标题】表单输入元素不居中【英文标题】:Form input elements not centering 【发布时间】:2011-09-30 15:23:56 【问题描述】:

我在这里查看了许多不同的答案,它们似乎都归结为 text-align: center 在父 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 中居中。)

【问题讨论】:

【参考方案1】:

添加

margin: auto;

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

还要确保删除 text-align: center; 属性,因为这会导致输入中的文本居中。

JSFiddle

【讨论】:

谢谢,成功了。所有的答案都差不多。接受这个,因为它是第一个。【参考方案2】:

修改input 元素的margin 声明,以将auto 用于margin-leftmargin-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.

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

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

【讨论】:

以上是关于表单输入元素不居中的主要内容,如果未能解决你的问题,请参考以下文章

在输入表单上居中文本

引导表单间距已关闭

禁用提交 btn 时,预填充的表单输入元素不接受第一个输入

难以垂直居中h1元素和输入元素

使用 CSS 将包含在 DIV 中的浮动输入元素居中

如何在表格下方居中对齐按钮?