体宽可以被覆盖吗?

时间:2012-08-09 11:42:17

标签: jquery html css html5 css3

可以覆盖体宽,例如我有这个例子:

<body>
<table id="table1">
<tr><td></td></tr>
</table>
<table id="table2">
<tr><td></td></tr>
</table>
</body>

css:
body{width:970px;}
#table1{width:100%;}
#table2{width:100%;}

我想为第一个表设置一个宽度:auto;可在完整的浏览器宽度上展开,但不允许使用正文宽度。

我必须拥有那个身体:970px所以我无法修改它,我必须有100%的第二个表来扩展970px体宽内的所有元素。

我该如何解决这个问题?

fiddle example

2 个答案:

答案 0 :(得分:1)

没有好办法做到这一点; HTML元素始终从父项继承属性。因此,如果您给body一个固定宽度,则基本上限制了孩子们可以做的事情。对于他们来说,世界(即width: 100%)现在是有限的body宽度,并且没有办法说“使用父宽度但请跳过身体元素”。

使用JavaScript,您可以尝试获取html元素的宽度,但即使您将其分配给table1,溢出规则也可能会将其剪切。

要解决此问题,您必须摆脱固定的身体宽度。用固定宽度的容器div替换主体。这样,您就可以将table1移到容器div之外,它会看到body的自然宽度。

答案 1 :(得分:0)

因为你说:我必须拥有那个身体:970px所以我无法修改它,我想你无法修改身体CSS: 你可以这样做:

CSS

#table1, #table2 {width:970px;}

的jQuery

$(document).ready(function(){
$('body').css('width', '970px');
})