顶部的文字不是按钮的中心

时间:2021-11-15 15:00:05

I have button with text on top

我的按钮上面有文字

Here is code

这是代码

.settings-button-new {
    width: 150px;
    height: 150px;
    text-decoration: none;
    line-height: 14px;
    text-align: center;
    position: relative;
    margin-left: 20px;
    margin-bottom: 20px;
    border: solid 4px #d3dbde;
    -webkit-border-radius: 13px;
    -moz-border-radius: 13px;
    border-radius: 13px;
    font: 15px Arial, Helvetica, sans-serif;
    color: #1c559b;
    background-color: #ffffff;
    background-image: -moz-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
    background-image: -webkit-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
    background-image: -o-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
    background-image: -ms-linear-gradient(top, #ffffff 0%,#fcfcfc 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fcfcfc', endColorstr='#fcfcfc',GradientType=0 );
    background-image: linear-gradient(top, #ffffff 0%,#fcfcfc 100%);
    -webkit-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
    -moz-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
    box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
}

.settings-button-new span {
    display: block;
    position: absolute;
    top:0;
    left:0;
}
 <button class="settings-button-new"><span>Home</span></button>

It on the top, but not centered as you can see.

它在顶部,但没有你可以看到的居中。

I try to use text-align: center; but seems it not works.

我尝试使用text-align:center;但似乎不起作用。

How can i center it in button?

我怎么能把它放在按钮中心?

Thank's for help

感谢帮助

6 个解决方案

#1


2  

Just add below css code for center, if don't need to vertically center then the top:0 or as your need; and transform: translate(-50%, 0);.

只需添加以下css代码为中心,如果不需要垂直居中然后顶部:0或根据您的需要;和transform:translate(-50%,0);.

.settings-button-new span {
      display: block;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }

.settings-button-new {
  width: 150px;
  height: 150px;
  text-decoration: none;
  line-height: 14px;
  position: relative;
  margin-left: 20px;
  margin-bottom: 20px;
  border: solid 4px #d3dbde;
  -webkit-border-radius: 13px;
  -moz-border-radius: 13px;
  border-radius: 13px;
  font: 15px Arial, Helvetica, sans-serif;
  color: #1c559b;
  background-color: #ffffff;
  background-image: -moz-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
  background-image: -webkit-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
  background-image: -o-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
  background-image: -ms-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fcfcfc', endColorstr='#fcfcfc', GradientType=0);
  background-image: linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
  -webkit-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
  -moz-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
  box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
}

.settings-button-new span {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
<button class="settings-button-new"><span>Home</span></button>

Only center.

只有中心。

.settings-button-new span {
          display: block;
          position: absolute;
          top: 5px;
          left: 50%;
          transform: translate(-50%, 0);
        }

.settings-button-new {
  width: 150px;
  height: 150px;
  text-decoration: none;
  line-height: 14px;
  position: relative;
  margin-left: 20px;
  margin-bottom: 20px;
  border: solid 4px #d3dbde;
  -webkit-border-radius: 13px;
  -moz-border-radius: 13px;
  border-radius: 13px;
  font: 15px Arial, Helvetica, sans-serif;
  color: #1c559b;
  background-color: #ffffff;
  background-image: -moz-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
  background-image: -webkit-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
  background-image: -o-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
  background-image: -ms-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fcfcfc', endColorstr='#fcfcfc', GradientType=0);
  background-image: linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
  -webkit-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
  -moz-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
  box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
}

.settings-button-new span {
  display: block;
  position: absolute;
  top: 5px;
  left: 50%;
  transform: translate(-50%, 0);
}
<button class="settings-button-new"><span>Home</span></button>

#2


1  

Maybe this code can help you

也许这段代码可以帮到你

.settings-button-new {
    width: 150px;
    height: 150px;
    text-decoration: none;
    line-height: 14px;
    text-align: center;
    position: relative;
    margin-left: 20px;
    margin-bottom: 20px;
    border: solid 4px #d3dbde;
    -webkit-border-radius: 13px;
    -moz-border-radius: 13px;
    border-radius: 13px;
    font: 15px Arial, Helvetica, sans-serif;
    color: #1c559b;
    background-color: #ffffff;
    background-image: -moz-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
    background-image: -webkit-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
    background-image: -o-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
    background-image: -ms-linear-gradient(top, #ffffff 0%,#fcfcfc 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fcfcfc', endColorstr='#fcfcfc',GradientType=0 );
    background-image: linear-gradient(top, #ffffff 0%,#fcfcfc 100%);
    -webkit-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
    -moz-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
    box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
}

.settings-button-new span {
    display: block;
    position: absolute;
    top:0;
    left: 50%;
    transform: translateX(-50%);
}
 <button class="settings-button-new"><span>Home</span></button>

#3


1  

You can remove vertical aligning text using without absolute positioning: you can use vertical-align and pseudoelement for this. Source answer for this technique.

您可以使用无绝对定位删除垂直对齐文本:您可以使用vertical-align和pseudoelement。这个技术的来源答案。

Also

  • You don't need absolute position in this case (and text-align: center).
  • 在这种情况下,您不需要绝对位置(和text-align:center)。
  • I would recommend you to delete vendor prefixed properties because they are for very old browsers
  • 我建议您删除供应商前缀属性,因为它们适用于非常旧的浏览器
  • linear-gradient will work for background, not background-image property
  • 线性渐变适用于背景,而不适用于背景图像属性

Demo:

演示:

/* styles to align button's text at the top */
.settings-button-new:after {
  content: "";
  display: inline-block;
  vertical-align: top;
  height: inherit;
}

/* styles to align button's text at the top */
.settings-button-new span {
  vertical-align: top;
  display: inline-block;
}

/* Cleaned up button styles */
.settings-button-new {
  width: 150px;
  height: 150px;
  text-decoration: none;
  margin-left: 20px;
  margin-bottom: 20px;
  border: solid 4px #d3dbde;
  border-radius: 13px;
  font: 15px Arial, Helvetica, sans-serif;
  color: #1c559b;
  background: #fff linear-gradient(top, #fff 0%, #fcfcfc 100%);
  box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #fff;
}
<button class="settings-button-new">
  <span>Home</span>
</button>

#4


0  

.settings-button-new span {
margin: 0px;
text-align: center;

}

}

#5


0  

can you change span to div , text-align:center will then work fine

你可以改变跨度为div,text-align:center将正常工作

#6


0  

remove the poistion .and simply add margin:auto

删除poistion。只需添加margin:auto

.settings-button-new {
    width: 150px;
    height: 150px;
    text-decoration: none;
    line-height: 14px;
    text-align: center;
    position: relative;
    margin-left: 20px;
    margin-bottom: 20px;
    border: solid 4px #d3dbde;
    -webkit-border-radius: 13px;
    -moz-border-radius: 13px;
    border-radius: 13px;
    font: 15px Arial, Helvetica, sans-serif;
    color: #1c559b;
    background-color: #ffffff;
    background-image: -moz-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
    background-image: -webkit-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
    background-image: -o-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
    background-image: -ms-linear-gradient(top, #ffffff 0%,#fcfcfc 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fcfcfc', endColorstr='#fcfcfc',GradientType=0 );
    background-image: linear-gradient(top, #ffffff 0%,#fcfcfc 100%);
    -webkit-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
    -moz-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
    box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
}

.settings-button-new span {
    margin:auto;
}
<button class="settings-button-new"><span>Home</span></button>

#1


2  

Just add below css code for center, if don't need to vertically center then the top:0 or as your need; and transform: translate(-50%, 0);.

只需添加以下css代码为中心,如果不需要垂直居中然后顶部:0或根据您的需要;和transform:translate(-50%,0);.

.settings-button-new span {
      display: block;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }

.settings-button-new {
  width: 150px;
  height: 150px;
  text-decoration: none;
  line-height: 14px;
  position: relative;
  margin-left: 20px;
  margin-bottom: 20px;
  border: solid 4px #d3dbde;
  -webkit-border-radius: 13px;
  -moz-border-radius: 13px;
  border-radius: 13px;
  font: 15px Arial, Helvetica, sans-serif;
  color: #1c559b;
  background-color: #ffffff;
  background-image: -moz-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
  background-image: -webkit-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
  background-image: -o-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
  background-image: -ms-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fcfcfc', endColorstr='#fcfcfc', GradientType=0);
  background-image: linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
  -webkit-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
  -moz-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
  box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
}

.settings-button-new span {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
<button class="settings-button-new"><span>Home</span></button>

Only center.

只有中心。

.settings-button-new span {
          display: block;
          position: absolute;
          top: 5px;
          left: 50%;
          transform: translate(-50%, 0);
        }

.settings-button-new {
  width: 150px;
  height: 150px;
  text-decoration: none;
  line-height: 14px;
  position: relative;
  margin-left: 20px;
  margin-bottom: 20px;
  border: solid 4px #d3dbde;
  -webkit-border-radius: 13px;
  -moz-border-radius: 13px;
  border-radius: 13px;
  font: 15px Arial, Helvetica, sans-serif;
  color: #1c559b;
  background-color: #ffffff;
  background-image: -moz-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
  background-image: -webkit-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
  background-image: -o-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
  background-image: -ms-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fcfcfc', endColorstr='#fcfcfc', GradientType=0);
  background-image: linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
  -webkit-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
  -moz-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
  box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
}

.settings-button-new span {
  display: block;
  position: absolute;
  top: 5px;
  left: 50%;
  transform: translate(-50%, 0);
}
<button class="settings-button-new"><span>Home</span></button>

#2


1  

Maybe this code can help you

也许这段代码可以帮到你

.settings-button-new {
    width: 150px;
    height: 150px;
    text-decoration: none;
    line-height: 14px;
    text-align: center;
    position: relative;
    margin-left: 20px;
    margin-bottom: 20px;
    border: solid 4px #d3dbde;
    -webkit-border-radius: 13px;
    -moz-border-radius: 13px;
    border-radius: 13px;
    font: 15px Arial, Helvetica, sans-serif;
    color: #1c559b;
    background-color: #ffffff;
    background-image: -moz-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
    background-image: -webkit-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
    background-image: -o-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
    background-image: -ms-linear-gradient(top, #ffffff 0%,#fcfcfc 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fcfcfc', endColorstr='#fcfcfc',GradientType=0 );
    background-image: linear-gradient(top, #ffffff 0%,#fcfcfc 100%);
    -webkit-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
    -moz-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
    box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
}

.settings-button-new span {
    display: block;
    position: absolute;
    top:0;
    left: 50%;
    transform: translateX(-50%);
}
 <button class="settings-button-new"><span>Home</span></button>

#3


1  

You can remove vertical aligning text using without absolute positioning: you can use vertical-align and pseudoelement for this. Source answer for this technique.

您可以使用无绝对定位删除垂直对齐文本:您可以使用vertical-align和pseudoelement。这个技术的来源答案。

Also

  • You don't need absolute position in this case (and text-align: center).
  • 在这种情况下,您不需要绝对位置(和text-align:center)。
  • I would recommend you to delete vendor prefixed properties because they are for very old browsers
  • 我建议您删除供应商前缀属性,因为它们适用于非常旧的浏览器
  • linear-gradient will work for background, not background-image property
  • 线性渐变适用于背景,而不适用于背景图像属性

Demo:

演示:

/* styles to align button's text at the top */
.settings-button-new:after {
  content: "";
  display: inline-block;
  vertical-align: top;
  height: inherit;
}

/* styles to align button's text at the top */
.settings-button-new span {
  vertical-align: top;
  display: inline-block;
}

/* Cleaned up button styles */
.settings-button-new {
  width: 150px;
  height: 150px;
  text-decoration: none;
  margin-left: 20px;
  margin-bottom: 20px;
  border: solid 4px #d3dbde;
  border-radius: 13px;
  font: 15px Arial, Helvetica, sans-serif;
  color: #1c559b;
  background: #fff linear-gradient(top, #fff 0%, #fcfcfc 100%);
  box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #fff;
}
<button class="settings-button-new">
  <span>Home</span>
</button>

#4


0  

.settings-button-new span {
margin: 0px;
text-align: center;

}

}

#5


0  

can you change span to div , text-align:center will then work fine

你可以改变跨度为div,text-align:center将正常工作

#6


0  

remove the poistion .and simply add margin:auto

删除poistion。只需添加margin:auto

.settings-button-new {
    width: 150px;
    height: 150px;
    text-decoration: none;
    line-height: 14px;
    text-align: center;
    position: relative;
    margin-left: 20px;
    margin-bottom: 20px;
    border: solid 4px #d3dbde;
    -webkit-border-radius: 13px;
    -moz-border-radius: 13px;
    border-radius: 13px;
    font: 15px Arial, Helvetica, sans-serif;
    color: #1c559b;
    background-color: #ffffff;
    background-image: -moz-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
    background-image: -webkit-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
    background-image: -o-linear-gradient(top, #ffffff 0%, #fcfcfc 100%);
    background-image: -ms-linear-gradient(top, #ffffff 0%,#fcfcfc 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fcfcfc', endColorstr='#fcfcfc',GradientType=0 );
    background-image: linear-gradient(top, #ffffff 0%,#fcfcfc 100%);
    -webkit-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
    -moz-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
    box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;
}

.settings-button-new span {
    margin:auto;
}
<button class="settings-button-new"><span>Home</span></button>