我怎样才能使文本居中而不停留在它包含的元素的顶部?

How can I center text without it staying at the top it's containing element?

我一直在尝试使用 vertical-align: middletext-align: center 来使按钮居中,但这根本不会影响我的样式,按钮仍然位于顶部。

我不确定为什么没有应用该样式。我可以使用 top: 50%,但这不是真正的中心,具体取决于按钮将包含的文本数量。

#selectmanager-outer {
    width: 200px;
    height: 200px;
    float: left;
    box-sizing: border-box;
    padding: 10px;
}

 #selectmanager-inner {
    height: 150px;
    box-sizing: border-box;
    border: 1px solid #E0E0E0;    
    background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#F5F5F5), to(#FAFAFA));
    background-image: -webkit-linear-gradient(#F5F5F5, #FAFAFA);
    background-image: -moz-linear-gradient(#F5F5F5, #FAFAFA);
    background-image: -o-linear-gradient(#F5F5F5, #FAFAFA);
    background-image: linear-gradient(#F5F5F5, #FAFAFA);
    padding: 10px;
}
<div id='selectmanager-outer'>
    <div id ='selectmanager-inner'>
        <button>Very long button name to test</button>
    </div>
</div>

解决方案: 借助 Akheel K M 的答案,使用位置、百分比和变换。

#selectmanager-outer {
  width: 200px;
  height: 200px;
  float: left;
  box-sizing: border-box;
  padding: 10px;
}

#selectmanager-inner {
  height: 150px;
  box-sizing: border-box;
  border: 1px solid #E0E0E0; 
  border-radius: 30px 30px; 
  background: #F5F5F5;
  background-image: -webkit-linear-gradient(top, #F5F5F5, #FAFAFA);
  background-image: -moz-linear-gradient(top, #F5F5F5, #FAFAFA);
  background-image: -ms-linear-gradient(top, #F5F5F5, #FAFAFA);
  background-image: -o-linear-gradient(top, #F5F5F5, #FAFAFA);
  background-image: linear-gradient(to bottom, #F5F5F5, #FAFAFA);
  padding: 10px;
  position: relative;
}

#selectmanager-inner button {
  position: absolute; 
  top: 50%; 
  left: 50%; 
  transform: translateY(-50%) translateX(-50%);
}
<div id='selectmanager-outer'>
  <div id ='selectmanager-inner'>
    <button>Very long button name to test</button>
  </div>
</div>

你为什么不在 top:50%; 之后尝试 transform: translateY(-50%);?可能无法在旧版浏览器上运行。

如果你得到父容器和按钮的中间,你可以使用margin-top。对于这种情况,请尝试

#selectmanager-inner .buttonclass{
  margin-top:50px;
}

我会对按钮应用 class,这样它就不会影响您站点中的所有按钮。