试试下面的:
$("#tooltip").css("margin-top", function() {
return -1 * $(this).outerHeight() // <== Multiplies outerHeight() by -1 and returns the result
});
在这种情况下,如果$.css()
接收到一个数字,它会自动转换为带有 'px' 的字符串。如果它接收到一个字符串,它假定该值是完整的并且应该按原样设置。
以下内容也可以:
// Passing in a number
$("#tooltip").css({'marginTop': - $("#tooltip").outerHeight()});
$("#tooltip").css({'marginTop': -1 * $("#tooltip").outerHeight()});
$("#tooltip").css('marginTop', - $("#tooltip").outerHeight());
$("#tooltip").css('marginTop', -1 * $("#tooltip").outerHeight());
// Passing in a string with units specified
$("#tooltip").css({'marginTop': '-' + $("#tooltip").outerHeight() + 'px'});
$("#tooltip").css('marginTop', '-' + $("#tooltip").outerHeight() + 'px');
虽然这会失败,因为结果字符串"-20"
是 marginTop 的无效 css 值:
$("#tooltip").css({'marginTop': '-' + $("#tooltip").outerHeight()});
如果您想使用百分比或 em 设置值,则字符串形式很有用:
$("#tooltip").css({'marginTop': "2em"});
$("#tooltip").css({'marginTop': "10%"});