2012-08-09 77 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