Javascript 通过获取视口宽度动态设置html正文的边距

Javascript 通过获取视口宽度动态设置html正文的边距,javascript,jquery,Javascript,Jquery,我试图通过获取视口宽度来动态设置id:main的边距。我在页面中有许多相同宽度的块。因此,我希望通过动态计算剩余宽度来拟合尽可能多的块并将它们居中。块大小为240px,填充大小为20px 我试过两种密码,我在这方面已经有一段时间了 var width=$(window).width() var stickies=Math.floor(width/240); //* calculate how many can fit in a row var mrg=(width-(stickies*240)

我试图通过获取视口宽度来动态设置id:main的边距。我在页面中有许多相同宽度的块。因此,我希望通过动态计算剩余宽度来拟合尽可能多的块并将它们居中。块大小为240px,填充大小为20px

我试过两种密码,我在这方面已经有一段时间了

var width=$(window).width()
var stickies=Math.floor(width/240);  //* calculate how many can fit in a row
var mrg=(width-(stickies*240)-20);//*calculating remaining width 
var mrg=(width-(stickies*240)-20)/2;
var el1=$('#main');
var el2=$('#main');
el1.css('margin-left',mrg+'px');
el2.css('margin-right',mrg+'px'); 



var w=window,d=document,e=d.documentElement,g=d.getElementsByTagName('body')     [0],x=w.innerWidth||e.clientWidth||g.clientWidth;
var stickies=Math.floor(var x/240);
var mrg=(var x-(var stickies*240)-20)/2;
var el1=$('#main');
var el2=$('#main');
el1.css('margin-left',mrg+'px');
el2.css('margin-right',mrg+'px');
短版 你应该需要这样的东西

var width=$(window).width();
var stickies=Math.floor(width/240);  //* calculate how many can fit in a row
var mrg=(width-(stickies*240)-20)/2; //*calculating remaining width 
$('#main').css({'margin-left': mrg+'px', 'margin-right': mrg+'px'});
长版本 你的代码需要大量修改

var el1=$(#main);
需要换成

var el1=$('#main');
因为现在你没有选择任何东西。您需要将选择器置于引号中


我也不明白为什么你对同一个元素使用两个变量。你可以这样做

$('#main').css({'margin-left': mrg+'px', 'margin-right': mrg+'px'});
或者类似的东西


最后,

var mrg=(width-(stickies*240)-20);//*calculating remaining width 
var mrg=(width-(stickies*240)-20)/2;
第2行将覆盖第1行。这是打字错误还是你想在这里做点什么?

简短版本 你应该需要这样的东西

var width=$(window).width();
var stickies=Math.floor(width/240);  //* calculate how many can fit in a row
var mrg=(width-(stickies*240)-20)/2; //*calculating remaining width 
$('#main').css({'margin-left': mrg+'px', 'margin-right': mrg+'px'});
长版本 你的代码需要大量修改

var el1=$(#main);
需要换成

var el1=$('#main');
因为现在你没有选择任何东西。您需要将选择器置于引号中


我也不明白为什么你对同一个元素使用两个变量。你可以这样做

$('#main').css({'margin-left': mrg+'px', 'margin-right': mrg+'px'});
或者类似的东西


最后,

var mrg=(width-(stickies*240)-20);//*calculating remaining width 
var mrg=(width-(stickies*240)-20)/2;

第2行将覆盖第1行。这是打字错误还是您想在这里做什么?

$(#main)
会给您一个语法错误。。应该是
$(“#main”)
pebbl,谢谢。即使这样也帮不了我。
$(#main)
会给你一个语法错误。。应该是
$(“#main”)
pebbl,谢谢。即使那样也帮不了我。谢谢。不,这不是打字错误,我在发帖时看不到这么小的文字。我想起来了,还是有东西丢了。我还是想不出哪一部分有问题。谢谢。不,这不是打字错误,我在发帖时看不到这么小的文字。我在想,还是有什么遗漏我仍然无法找出哪个部分有bug