2014-01-12 59 views
0

我想要使用CSS來格式化表格。該表有三個<td>,它們可以覆蓋表格寬度的20%/ 60%/ 20%,但最後的td會轉到下一行,而不是保持在同一行。CSS​​寬度不包括表格的100%

下面是表的CSS:

table{ 
    width: 100%; 
    height: 100%; 
    float: left; 
} 
#left_menu{ 
    width: 20%; 
    height: 100%; 
    float: left; 
    border-style:solid; 
    border-width:1px; 
    border-color:#000000; 
} 
#content{ 
    width: 60%; 
    height: 100%; 
    float: left; 
    border-style:solid; 
    border-width:1px; 
    border-color:#000000; 
} 
#right_menu{ 
    width: 20%; 
    height: 100%; 
    float: left; 
    border-style:solid; 
    border-width:1px; 
    border-color:#000000; 
} 

該網站是http://homeworkwizzard.com如果你想看看它的外觀。請問爲什麼會發生這種情況?

+2

這不是20世紀90年代,請不要濫用表格進行佈局。 – Quentin

+1

請在問題*中提供*完整*,簡化的測試用例*。問題不應依賴於可能會更改內容的外部URL(並且絕對不應該依賴於解決問題後內容會立即更改的外部URL)。 – Quentin

+0

嘿這個問題已經被jammykam解決了,但是你們認爲應該用什麼佈局來代替表格呢? –

回答

2

我同意這些意見,你應該不會使用表格來佈置設計。如果你正在學習,那麼你應該從一開始就學好,這樣你就不會陷入壞習慣。

這就是說,回答你的問題。問題是與float:left你正在使用的一切,我假設你正在試圖對齊文本的左側,在這種情況下,你應該使用text-align: left;

jsFiddle Demo

HTML:

<table> 
    <tr id="banner"> 
     <th colspan="3">Banner</th> 
    </tr> 
    <tr id="body"> 
     <td id="left_menu">Left Menu</td> 
     <td id="content">Content</td> 
     <td id="right_menu">Right Menu</td> 
    </tr> 
    <tr id="footer"> 
     <td colspan="3">Footer</td> 
    </tr> 
</table> 

CSS:

html{ 
    padding: 5% 10%; 
    margin: 0px; 
    border: 0px; 
    background-color: #FEFFAF; 
    background-size: 100%; 
} 
body { 
    width: 100%; 
    box-shadow: 5px 5px 500px #888888; 
    background: #e3e0c0; 
    opacity: 0.85; 
} 
table{ 
    width: 100%; 
    height: 100%; 
} 
#banner{ 
    width: 100%; 
    height: 15%; 
    text-align: left; 
} 
#body{ 
    width: 100%; 
    height: 70%; 
} 
#footer{ 
    width: 100%; 
    height: 15%; 
} 
#left_menu{ 
    width: 20%; 
    height: 100%; 
    border-style:solid; 
    border-width:1px; 
    border-color:#000000; 
} 
#content{ 
    width: 60%; 
    height: 100%; 
    border-style:solid; 
    border-width:1px; 
    border-color:#000000; 
} 
#right_menu{ 
    width: 20%; 
    height: 100%; 
    border-style:solid; 
    border-width:1px; 
    border-color:#000000; 
} 
+0

非常感謝,這解決了它。有一個問題,應該用什麼來代替佈局設計的表格? –

+0

@JavierCarmona您應該使用任何HTML元素,包括但不限於'div','span','p','a',並使用CSS使用直接元素選擇器,ID或類屬性對它們進行樣式設置。例如http://stackoverflow.com/questions/9917791/design-page-layout-using-css-div-like-html-table – jammykam

+0

我想不起任何好的教程,我的頭頂,這是一個很長的因爲我不得不看一個,但嘗試[this](http://www.sitepoint.com/rock-solid-css-layouts/)或[this](http://www.sitepoint.com/breaking ),但忽略XHTML的東西,它不再相關。我會把更多的重點放在HTML5和CSS3上。 – jammykam