jquery marginTop工作不正常
我试图在已知高度的div内垂直居中未知高度的文本。我尝试了cssjquery marginTop工作不正常,jquery,css,centering,Jquery,Css,Centering,我试图在已知高度的div内垂直居中未知高度的文本。我尝试了cssdisplay:table cell选项,但它不起作用,因此我使用jQuery检测高度,然后在必要时应用上边距,以完成居中-这在需要调整某些内容时起作用,但无法将其重新调整为上边距为零 这是我的职责: function change_trend(){ trend_text = $('#trends_holder img:eq(' + item_count + ')').attr('data-content')
display:table cell
选项,但它不起作用,因此我使用jQuery检测高度,然后在必要时应用上边距,以完成居中-这在需要调整某些内容时起作用,但无法将其重新调整为上边距为零
这是我的职责:
function change_trend(){
trend_text = $('#trends_holder img:eq(' + item_count + ')').attr('data-content');
$('.trend_text').text(trend_text);
var trendMargin = $('.trends_scroller').height() - $('.trend_text').innerHeight();
$('.trend_text').css('marginTop',trendMargin);
}
可变趋势保证金始终为零或十二。如果它是零,最初,一切都设置正确。然后,如果它是12,它会适当地设置上边距。但是,当我进入下一个marginTop为零的项目时,它不会将东西弹出到原来的位置。我如何垂直对齐这些东西?垂直居中似乎真的没有这么难…
如果你不知道,我不会告诉任何人。内联CSS用于额外的点
尝试使用“边距顶部”而不是“边距顶部”这样可以:
HTML:
要设置DIV的高度,请使用行高
而不是高度
。然后,在子级(文本的容器)上,将行高
设置回“正常”,并将显示:内联块
(这是必需的)
现场演示:你能举个例子吗?
.trend\u text
是否也是块级元素?(div
)?奇怪的是,虽然这在JS Fiddle中起作用,但如果我在代码中实现它,它就不起作用了。单行示例可以工作,但具有两行或更多行的项只对齐到div的顶部。不确定原因。但这是一个很好的建议。我将尝试在其他项目中实现它。@mheavers您可以使用Chrome的开发工具来检查应用于您的元素的CSS样式。这样,您应该能够轻松地解决问题。
<div>
<p> Some text here <br> Some more text here. </p>
</div>
div {
line-height:300px;
}
p {
line-height:1em;
display:inline-block;
width:100%;
}