Jquery CSS分配负值

时间:2012-10-07 13:01:01

标签: javascript jquery css

这是我的jQuery代码:

<script type="text/javascript" src="js/jquery.js">
</script>
<script type="text/javascript">
 $(document).ready(function() {
     get_font_size();
     set_sidebar();

});
function get_font_size()
{
var b=$(window).width();
var side_size=b*260/1440;
b=b-side_size;
$("#sidebar").css({"width":side_size});
$("#alexa-widget img").css({"width":side_size});
$(".fb-like-box").attr("data-width",side_size); 
}
function set_sidebar()
{
var b=$(window).width();
var font_size=b*65/1440;
var font_size_2=b*133/1440;
var margin_top=b*10/1440;
margin_top*=-1;
margin_top=Math.round(margin_top);
$("#my_tabs li").css({"font-size":font_size});
$("#header").css({"font-size":font_size_2,"margin-top":margin_top});

}
</script>

一切正常,除了margin-top属性。我不能将margin-top分配给负值。它失败但字体大小和其他属性工作正常。为什么jquery css设置失败并带负值?如果我这样做相同的内部css工作是完美的。我需要根据屏幕分辨率改变网页所以我不能在CSS内部做到这一点。我需要jQuery修复此问题。我的代码中已经有视口元标记所以请不要我建议使用alert(margin_top)检查margin_top变量,并根据需要显示正确的负值,这样只有css设置部分失败才能正确计算。请帮我修复此问题。谢谢。

4 个答案:

答案 0 :(得分:1)

使用jQuery设置margin-top时,必须在末尾添加单位(在本例中为:px)

示例:

>>> $("body").css("margin-top");
"0px"
>>> $("body").css("margin-top", "10");
[body]
>>> $("body").css("margin-top");
"0px"
>>> $("body").css("margin-top", "10px");
[body]
>>> $("body").css("margin-top");
"10px"

编辑(以便更清楚地了解如何修复代码:

更改代码中的行,如下所示:

$("#header").css({"font-size":font_size_2,"margin-top":margin_top});

$("#header").css({"font-size":font_size_2,"margin-top":margin_top + "px"});

答案 1 :(得分:1)

您需要为保证金添加一个度量单位。

$("#header").css({"font-size":font_size_2,"margin-top":margin_top+"%"});

答案 2 :(得分:1)

这样做有什么问题like this

$('div').css({marginTop:-100});​

并非一切都需要stringly typed

答案 3 :(得分:0)

我使用$("#header").css({"font-size":font_size_2,"margin-top":margin_top+"%"});修复了它。