繁体   English   中英

如何在这些CSS按钮上垂直对齐文本?

[英]How can I vertically align the text on these CSS buttons?

JSFiddle: https ://jsfiddle.net/u7Lm5sjp/

我有一些链接,例如:

<div class="splash_button_row">
        <span>
        <a href="www.google.com" class="splash_button">label 4 label 4 label 4 </a>
        <a href="www.google.com" class="splash_button">label 2</a>
        <a href="www.google.com" class="splash_button">label 5 label 5label 5</a>
        <a href="www.google.com" class="splash_button">label 5 label 5label 5label 5 label 5label 5</a>
        </span>
</div>

还有一堆.css,例如:

.splash_button {
background: linear-gradient(to bottom, #3498DB, #2980B9) repeat scroll 0% 0% #3498DB;
border-radius: 30px;
text-shadow: 6px 4px 4px #666;
box-shadow: 2px 2px 3px #666;
font-family: Georgia;
color: #FFF;
padding: 10px 20px;
border: 2px solid #216E9E;
text-decoration: none;
display: inline-block;
margin: 10px;
white-space: normal !important;
word-wrap: break-word;
max-width: 130px !important;
text-align: center;
font-size: 20px;
height: 65px;
vertical-align: middle;
}

这里的关键是:

height: 65px;
vertical-align: middle;

这两个属性似乎在相互斗争。 如果我设置了vertical-align: middle; 文本全部对齐,并在其周围均匀地填充(这就是我想要的)。 但是当我设置height: 65px; 为了使所有按钮的大小相同,文本似乎被推到了按钮的顶部。

如何使所有按钮具有相同(设置)的大小,又如何使其中的文本与“按钮”的中心垂直对齐?

编辑:

我已经阅读了这个问题,但没有回答我的问题。 我的按钮有多行,因此具有行高的技巧不起作用,并且我的按钮必须是嵌入式元素,因此具有flex的技巧不起作用。 我的按钮也需要隔开,但是表格解决方案似乎阻止了这一点-但我仍然在玩这个。

将显示更改为table-cell,以使垂直aligm中线起作用。

 .splash_button_row { display: table; border-collapse: separate; border-spacing: 15px; } .splash_button { background: #3498db; background-image: -webkit-linear-gradient(top, #3498db, #2980b9); background-image: -moz-linear-gradient(top, #3498db, #2980b9); background-image: -ms-linear-gradient(top, #3498db, #2980b9); background-image: -o-linear-gradient(top, #3498db, #2980b9); background-image: linear-gradient(to bottom, #3498db, #2980b9); -webkit-border-radius: 34; -moz-border-radius: 34; border-radius: 34px; text-shadow: 6px 4px 4px #666666; -webkit-box-shadow: 2px 2px 3px #666666; -moz-box-shadow: 2px 2px 3px #666666; box-shadow: 2px 2px 3px #666666; font-family: Georgia; color: #ffffff; font-size: 20px; padding: 10px 20px 10px 20px; border: solid #216e9e 2px; text-decoration: none; display: table-cell; /* TABLE-CELL */ border: solid transparent 0 10px; margin: 10px; white-space: normal !important; word-wrap: break-word; max-width: 130px !important; text-align: center; vertical-align: middle; height: 65px; /* ADD HEIGHT*/ } 
 <div class="splash_button_row"> <span> <a href="www.google.com" class="splash_button">label 4 label 4 label 4 </a> <a href="www.google.com" class="splash_button">label 2</a> <a href="www.google.com" class="splash_button">label 5 label 5label 5</a> <a href="www.google.com" class="splash_button">label 5 label 5label 5label 5 label 5label 5</a> </span> </div> 

.splash_button {
      background: #3498db;
      background-image: -webkit-linear-gradient(top, #3498db, #2980b9);
      background-image: -moz-linear-gradient(top, #3498db, #2980b9);
      background-image: -ms-linear-gradient(top, #3498db, #2980b9);
      background-image: -o-linear-gradient(top, #3498db, #2980b9);
      background-image: linear-gradient(to bottom, #3498db, #2980b9);
      -webkit-border-radius: 34;
      -moz-border-radius: 34;
      border-radius: 34px;
      text-shadow: 6px 4px 4px #666666;
      -webkit-box-shadow: 2px 2px 3px #666666;
      -moz-box-shadow: 2px 2px 3px #666666;
      box-shadow: 2px 2px 3px #666666;
      font-family: Georgia;
      color: #ffffff;
      font-size: 20px;
      padding: 10px 20px 10px 20px;
      border: solid #216e9e 2px;
      text-decoration: none;                  
      float: none;
      white-space: normal !important;
      word-wrap: break-word;
      max-width: 130px !important;
      text-align: center;
      vertical-align: middle;
      **margin:10px **auto;****
      **display: block;**
      **height: 65px;**
      **display: flex;
      **justify-content: center; /* align horizontal */**
      **align-items: center;****
    }

为我做了把戏。 看到星星。 我编辑了答案。 我想我现在得到了你想要的。

对齐CSS中几乎所有内容的最佳方法。 您只需要使用下面的类。

.vertical-center{
  position: relative;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM