【问题标题】:Align text vertically center of h2 tag with a background将 h2 标签的文本垂直中心与背景对齐
【发布时间】:2013-07-30 21:08:52
【问题描述】:

我有一个带有背景图像作为图标的 h2 标签。我想在 h2 标签内垂直对齐文本,但它不起作用。我曾尝试使用display: table-cell;,但这也没有奏效。文本也可以交叉成两行。

HTML:

<ul class="FeatureRow">
    <li><a href="#"><span><h2 class="SpeechBg">Need some help?</h2><p>Feel free to get in contact with us</p></span></a></li>
    <li><a href="#"><span><h2 class="PinBg">Great locations!</h2></span></a></li>
    <li><a href="#"><span><h2 class="ViewBg">View our apartments</h2></span></a></li>
</ul>

CSS:

a {
color: #2b6893;
text-decoration: none;
}
.FeatureRow{
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
}
.FeatureRow li{
float: left;
padding: 10px;
margin: 10px;
height: auto;
-webkit-box-shadow: 0px 4px 8px #f5f5f5;
-moz-box-shadow: 0px 4px 8px #f5f5f5;
box-shadow: 0px 4px 8px #f5f5f5;
background-color: #fdfdfd;
background-image: -moz-linear-gradient(top,#fbfbfb,#ffffff);
background-image: -webkit-gradient(linear,0 0,0 100%,from(#fbfbfb),to(#ffffff));
background-image: -webkit-linear-gradient(top,#fbfbfb,#ffffff);
background-image: -o-linear-gradient(top,#fbfbfb,#ffffff);
background-image: linear-gradient(to bottom,#fbfbfb,#ffffff);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbfbfb',endColorstr='#ffffffff',GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled= false);
}
.FeatureRow span{
display: block;
width: 260px;
}
.FeatureRow h2{
background-repeat: no-repeat;
padding-left: 65px;
font-size: 22px;
height: auto;
min-height: 60px;
color: #3F92ED;
}
.SpeechBg{
background-image: url(http://joshblease.co.uk/Apartments/images/icons/speech.png);
}
.PinBg{
background-image: url(http://joshblease.co.uk/Apartments/images/icons/pin.png);
}
.ViewBg{
background-image: url(http://joshblease.co.uk/Apartments/images/icons/view.png);
}

JSFiddle 示例:http://jsfiddle.net/YPnTp/

【问题讨论】:

标签: html css alignment vertical-alignment


【解决方案1】:

.SpeechBg.PinBg.ViewBg 中,添加line-height: ##px;,其中## 是背景图像的高度(以像素为单位)。

【讨论】:

  • 抱歉,误读了 HTML。我想你只是想让主标题(h2 部分)垂直居中,而不是

    元素。

【解决方案2】:

改变你的

.FeatureRow h2 ,添加 line-height

css如下

.FeatureRow h2{
background-repeat: no-repeat;
padding-left: 65px;
font-size: 22px;
height: auto;
min-height: 60px;
color: #3F92ED;
line-height:2.5em;
}

【讨论】:

  • 第三个框的文本分成两行,这使得这不合适,还有其​​他想法吗?
  • 将字体大小减小一点可能是21px
猜你喜欢
  • 1970-01-01
  • 2012-11-06
  • 1970-01-01
  • 2011-03-18
  • 1970-01-01
  • 2020-06-25
  • 2018-03-16
  • 1970-01-01
  • 2016-10-08
相关资源
最近更新 更多