语法:使用变量作为css值

试图让一个盒子在另一个盒子里垂直居中。 我知道有css可以做到这一点,但我宁愿使用jquery,更可靠(?)。

var textH = $(".Text").height(); var vertAlign = ((140 - textH)/2); $(".Text").css({ marginTop: 'vertAlign' }); 

不确定我缺少什么细节。 输出应为可用垂直空间的一半(以像素为单位)。

编辑

最初,文本块是div包含的跨度。 div有一个设定的高度(在这种情况下为140 px),文本块,跨度,根据其中的文本数量可变高度。 但是,我需要此文本块可编辑。 所以我将其更改为文本区域。 但是,文本区域的尺寸行为很笨拙,我不得不为它设置静态高度和宽度。 现在这个文本块的高度不是可变的,因此它与它的父级之间的高度没有差别,可以从中获取边距顶部间距。 我该怎么办?

删除vertAlign周围的vertAlign

 $(".Text").css('margin-top', vertAlign); 

试试上面的代码。 它必须帮助你。

如果您想要多个样式,可以选择:

 var styles = {'margin-top':vertAlign,'property':100,'property':somevalue} $(".Text").css(styles); 
 var textH = $(".Text").height(); var vertAlign = ((140 - textH)/2); $(".Text").css({ margin-top: vertAlign + 'px' }); 

您需要指定单位,否则您的浏览器将无法判断您是想要像素还是em或者苹果。另外您可能想要进行一些范围检查,您不希望vertAlign为负数。