我使用twitter bootstrap,我想将一个div
块与一个图片和右边的文本对齐。
以下是代码:
<ol class="row" id="possibilities">
<li class="span6">
<div class="row">
<div class="span3">
<p>some text here</p>
<p>Text Here too</p>
</div>
<figure class="span3"><img src="img/screenshots/options.png" alt="Some text" /></figure>
</div>
</li>
<li class="span6">
<div class="row">
<figure class="span3"><img src="img/qrcode.png" alt="Some text" /></figure>
<div class="span3">
<p>Some text</p>
<p>Some text here too.</p>
</div>
</div>
</li>
</ol>
我尝试了这个但不是wortks:
.span6 .row{display: table;}
.span6 .row .span3, .span6 .row figure{display:table-cell; vertical-align: middle;}
我也试过了:
.span6 .row .span3{display: inline-block; vertical-align: middle;}
没有工作。有人有想法吗? 提前谢谢。
答案 0 :(得分:17)
试试这个:
.row > .span3 {
display: inline-block !important;
vertical-align: middle !important;
}
小提琴:http://jsfiddle.net/EexYE/
如果span3处于浮动且干扰,您可能还需要添加Diego的float: none !important;
。
小提琴:http://jsfiddle.net/D8McR/
响应Alberto:如果你修正了行div的高度,那么要继续垂直居中对齐,你需要将行的行高设置为与行的像素高度相同(即,在你的情况下都是300px)。如果你这样做,你会注意到子元素继承了行高,这在这种情况下是一个问题,所以你需要将span3s的行高设置为它实际应该是什么(1.5是小提琴中的示例值,或1.5 x字体大小,当我们更改行高时,我们没有改变。)
答案 1 :(得分:4)
尝试从span6:
中删除float
属性
{ float:none !important; }
答案 2 :(得分:0)
如果我从自己使用的bootstrap中正确记得,.spanN
类会浮动,这会自动使它们表现为display: block
。要使display: table-cell
正常工作,您需要移除浮动。
答案 3 :(得分:0)
除了之前的答案之外,你总是可以使用Pull attrib:
<ol class="row" id="possibilities">
<li class="span6">
<div class="row">
<div class="span3">
<p>some text here</p>
<p>Text Here too</p>
</div>
<figure class="span3 pull-right"><img src="img/screenshots/options.png" alt="Some text" /></figure>
</div>
</li>
<li class="span6">
<div class="row">
<figure class="span3"><img src="img/qrcode.png" alt="Some text" /></figure>
<div class="span3">
<p>Some text</p>
<p>Some text here too.</p>
</div>
</div>
</li>
答案 4 :(得分:0)
我用这个
<style>
html, body{height:100%;margin:0;padding:0 0}
.container-fluid{height:100%;display:table;width:100%;padding-right:0;padding-left: 0}
.row-fluid{height:100%;display:table-cell;vertical-align:middle;width:100%}
.centering{float:none;margin:0 auto}
</style>
<body>
<div class="container-fluid">
<div class="row-fluid">
<div class="offset3 span6 centering">
content here
</div>
</div>
</div>
</body>