这是我的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设置部分失败才能正确进行计算.请帮助我解决此问题.谢谢.
解决方法:
使用jQuery设置页边空白时,您必须在末尾添加单位(在本例中为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"});