我尝试使用CSS和Zurb Foundation 5框架在标题面板中间对齐一行文本(一个宽约250px的高容器),但是无法将其与出于某种原因工作。
我已经尝试了在此链接http://www.vanseodesign.com/css/vertical-centering/总结的6种垂直对齐方法中的每一种(线高法,css表法,绝对位置和负边距,绝对位置和拉伸,填充顶部和底部) ,浮动div)。我所管理的最好的方法是将标题面板的外部文本浮动到整个页面的中间,或者将文本向上或向下移动一小段距离(看似随机),同时扭曲标题面板的高度。
这让我觉得我的标题面板的CSS中存在一些相互冲突的东西(或者股票基础框架中的某些冲突) - 但我无法解决这个问题。感谢任何指针。
谢谢!
我的标题面板的CSS紧跟在标准ZURB标题栏之后(45px高 - 请参阅填充),如下所示:
#headerpanel {
background: linear-gradient(rgba(0, 0, 0, 0.3) , rgba(0,0,0,0.3)), url( ../../images/footerbg1.jpg);
background-size: cover;
padding: 45px 0 250px;
text-align: center;
position: relative;
}
我的HTML布局是:
<section id="headerpanel">
<div class="row">
<div class="large-12 columns">
<div class="spanMiddle">
<?php print @$this->heading; ?>
</div>
</div>
</div>
</section>
然后,我尝试以多种方式设置spanMiddle div的参数 - 例如
#spanMiddle {
position: absolute;
top: 50%;
left: 50%;
height: 30%;
width: 50%;
margin: -15% 0 0 -25%;
}
我还尝试过没有以下部分,并使用专用的p或span标记(在headerpanel css之后立即使用.p {}或.spam {}设置):
<div class="row">
<div class="large-12 columns">
</div>
</div>
我也尝试过:
.spanMiddle {
position: relative;
top: 50%;
transform: translateY(-50%);
}
和
margin-top:auto;
margin-bottom:auto;
我哪里错了?
答案 0 :(得分:3)
试试这个CSS:
#headerpanel {
background: linear-gradient(rgba(0, 0, 0, 0.3) , rgba(0,0,0,0.3)), url( ../../images/footerbg1.jpg);
background-size: cover;
text-align: center;
position: relative;
display: table;
width: 100%;
height : 250px; /* Determine the height of the box */
}
#headerpanel .row,
#headerpanel .columns{
display: table;
width: 100%;
height: 100%;
}
#headerpanel .spanMiddle {
display: table-cell;
text-align: center;
vertical-align: middle;
}
以下是fiddle
希望有所帮助:)
答案 1 :(得分:-1)
如果您可以明确设置标题高度,可以从此处http://css-tricks.com/centering-in-the-unknown/
尝试垂直居中方法#3 #headerpanel {
background: linear-gradient(rgba(0, 0, 0, 0.3) , rgba(0,0,0,0.3));
background-size: cover;
height: 250px;
text-align: center;}
.row, .columns {
height: 100%;}
.columns:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
margin-right: -0.25em;}
.spanMiddle {
display: inline-block;
vertical-align: middle;}
这是一个小提琴 http://jsfiddle.net/j2e4sosx/1/