3

这是我的 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 修复这个。我的代码中已经有 viewport 元标记所以请不要建议 viewport 或媒体查询解决方案。我已经用 alert(margin_top) 检查了 margin_top 变量,它根据需要向我显示了一个正确的负值,因此只有 css 设置部分失败才能正确进行计算。请帮我解决这个问题。谢谢。

4

4 回答 4

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"});
于 2012-10-07T13:05:29.243 回答
1

您需要为边距添加计量单位。

$("#header").css({"font-size":font_size_2,"margin-top":margin_top+"%"});
于 2012-10-07T13:07:18.067 回答
1

这样做有什么问题

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

并非所有内容都需要字符串类型

于 2012-10-07T13:10:31.757 回答
0

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

于 2012-10-07T13:09:09.930 回答