Javascript Jquery CSS指定负值

Javascript Jquery CSS指定负值,javascript,jquery,css,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).wid

这是我的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>

$(文档).ready(函数(){
获取字体大小();
设置侧边栏();
});
函数get\u font\u size()
{
var b=$(window.width();
var侧_尺寸=b*260/1440;
b=b侧尺寸;
$(“#边栏”).css({“宽度”:side_size});
$(“#alexa widget img”).css({“width”:side_size});
$(“.fb-like-box”).attr(“数据宽度”,侧面尺寸);
}
函数集_侧栏()
{
var b=$(window.width();
var font_size=b*65/1440;
var font_size_2=b*133/1440;
var保证金=b*10/1440;
边距_top*=-1;
边距顶部=数学四舍五入(边距顶部);
$(“#我的标签li”).css({“font size”:font_size});
$(“#header”).css({“font size”:font_size_2,“margin top”:margin_top});
}

除了margin top属性外,一切正常。我无法将margin top指定为负值。它失败了,但字体大小和其他属性正常。为什么jquery css设置会因负值而失败?如果我在css内部执行相同的操作,它就完美了。我需要此功能来根据屏幕分辨率更改网页,所以我无法在内部执行此操作CSS。我需要jQuery对此进行修复。我的代码中已经有viewport meta标记,因此请不要建议使用viewport或media查询解决方案。我已使用alert(margin\u top)检查margin\u 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+"%"});

我用
$(“#header”).css({“font-size”:font-u-size_2,“margin-top”:margin-u-top+“%”)修复了它;

这样做有什么不对


不是所有的东西都需要。我需要动态地这样做。值根据屏幕分辨率的不同而变化。让我试试。这怎么不正确?我用负数尝试了我的精确代码,它可以工作。他不能将边距设置为负数的唯一原因是他忘记了单位。因为提供值是一种不好的做法如果不是字符串,则将其作为字符串。不应接受此答案,因为它不是真的。是的,供应单元可以工作,但不是required@user1613360在jsfiddle.net中放一个复制原始问题的演示如果不正确,jQuery将自动设置“px”如果一个数字是used@charlietfl当前位置我不这么认为。如果这是真的,那么它应该对我有用,但它失败了。
$("#header").css({"font-size":font_size_2,"margin-top":margin_top+"%"});
$('div').css({marginTop:-100});​