2012-08-09 67 views
0

可以覆盖车身宽度,例如我有这样的例子:身宽可以被覆盖?

<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%;} 

我想为第一台宽度设置:自动;在完整的浏览器宽度上可扩展,但不允许使用机身宽度。

我必须有那个身体:970px所以我不能修改,我必须有100%的第二张桌子展开970px身体宽度内的所有元素。

我该如何解决?

fiddle example

+0

永不放弃身体的宽度。这不是一个好的做法 – sandeep 2012-08-09 11:44:38

+0

我会和@sandeep一起去,而且我也不会遇到问题。如果第一个表格的全宽设置为100%,第二个表格设置为970像素。 – insertusernamehere 2012-08-09 11:47:06

+0

@sandeep不幸的是,该应用程序已经由另一个开发人员创建,我尝试重新设计一点旧时尚,如果我删除身体宽度我'毁了整个应用程序对齐:( – mcmwhfy 2012-08-09 11:49:18

回答

1

有没有好办法做到这一点; HTML元素总是继承父母的属性。所以如果你给body一个固定的宽度,你基本上限制了孩子们可以做的事情。对于他们来说,世界(即width: 100%)现在是有限的body宽度,没有办法说“使用父宽度,但请跳过正文元素”。

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

要解决这个问题,你将不得不摆脱固定的身体宽度。用固定宽度的容器div替换身体。这允许您将table1移动到容器div之外,在那里它将看到body的自然宽度。

+0

是的,这是最好的答案,我会用容器div“替换”正文。非常感谢你。 – mcmwhfy 2012-08-09 12:02:36

0

因为你说:我必须有一个身体:970像素,所以我不能修改,我想你不能修改体CSS: 你可以这样做:

CSS

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

jQuery的

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

这是一个非常糟糕的答案,这里没有必要的JavaScript – 2012-08-09 11:49:14

+0

他说:我必须有这样的身体:970像这样我无法修改,这需要一个JS解决方案,而不是? – Mark 2012-08-09 11:50:07