如何在不指定宽度的情况下将输入标签对齐到中心?

cat*_*use 32 html css

我有这些HTML和CSS:

#siteInfo input[type="button"] {
  background: none repeat scroll 0 0 #66A3D2;
  border-color: #FFFFFF #327CB5 #327CB5 #FFFFFF;
  border-radius: 10px 10px 10px 10px;
  border-style: solid;
  border-width: 1px;
  box-shadow: 1px 1px 3px #333333;
  color: #FFFFFF;
  cursor: pointer;
  font-weight: bold;
  padding: 5px;
  text-align: center;
  text-shadow: 1px 1px 1px #000000;
}
Run Code Online (Sandbox Code Playgroud)
<div id="siteInfo">
  <p>Some paragraph.</p>
  <input type="button" value="Some Button">
</div>
Run Code Online (Sandbox Code Playgroud)

我希望按钮与中心对齐; 然而,即使text-align: center在CSS中,仍然在左边.我也不想指定宽度,因为我希望它随着文本的长度而改变.我怎么做?

我知道解决方案很简单,但我找不到合适的方法.我有时会将它包裹在一个<p>中心对齐的标签周围,但这是我想要避免的额外标记.

dot*_*hen 58

你需要把它text-align:center放在包含div上,而不是放在输入本身上.

  • 这是因为`center`属性会影响声明它的元素内部.也就是说,`<p>`和`</ p>`之间的所有东西,以及`<input>`和`</ input>`之间的所有东西,这可能都没有,因为你把它缩写为`<input /> `甚至`<input>`. (3认同)

san*_*eep 9

写这个:

#siteInfo{text-align:center}
p, input{display:inline-block}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/XfSz6/


Aya*_*yan 7

您可以在输入字段中使用以下CSS:

.center-block {
  display: block;
  margin-right: auto;
  margin-left: auto;
}
Run Code Online (Sandbox Code Playgroud)

然后,如下更新您的输入字段:

<input class="center-block" type="button" value="Some Button">
Run Code Online (Sandbox Code Playgroud)


sim*_*mon 5

您可以使用这两行简单的代码:

    display: block;
    margin:auto;
Run Code Online (Sandbox Code Playgroud)