这是我的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设置部分失败才能正确计算。请帮我修复此问题。谢谢。
答案 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)
答案 3 :(得分:0)
我使用$("#header").css({"font-size":font_size_2,"margin-top":margin_top+"%"});
修复了它。