2012-12-12 50 views
0

我正在研究一個新的HTML頁面,我想使用無表格佈局。請記住,這裏的內容只是頁面的一部分,但我認爲它描繪了我想要做的事情的清晰畫面。如何正確使用帶有CSS邊框的無表格佈局?

下面的HTML是爲了呈現六個單元格里面的文本。我希望細胞的大小適當,以包含內部的文字。

我遇到的問題是,邊界繪製錯誤。在IE和Firefox,我看到了兩個問題:

1)邊界的一個繪製表外。

2)第一行中的單元之間的邊界不完全繪製。

<!DOCTYPE html> 
<html> 
<head> 
<style> 

html 
{ 
} 
.reviewRow 
{  
    clear:both;  
} 
.reviewBlock 
{ 
float:left; 
border-top: 1px solid #444; 
border-left: 1px solid #444; 
} 
.rightBorder 
{ 
    border-right: 1px solid #444; 
} 
.bottomBorder 
{ 
    border-bottom: 1px solid #444; 
} 
</style> 
</head> 

<body> 
<div class='reviewRow'> 
    <div style="width:200px;" class='reviewBlock'>  
     THIS TEXT IS MUCH LONGER THAN THE TEXT IN THE OTHER CELLS 
    </div> 
    <div style="width: 225px" class='reviewBlock'>  
     ABC 
    </div> 
    <div style="width: 100px" class="reviewBlock rightBorder">  
     December 25, 2012 
    </div> 
</div> 
<div class='reviewRow bottomBorder'> 
    <div style="width:300px;" class='reviewBlock'>  
     Hello, World! 
    </div> 
    <div style="width: 125px" class='reviewBlock'>  
     123 
    </div> 
    <div style="width: 100px" class="reviewBlock rightBorder">  
     May 1, 2013 
    </div> 
</div> 
<div style='clear:both;'></div> 
</body> 
</html> 
+5

爲什麼不使用表?表格對於數據表格來說絕對正確......它們是爲您的目的而製作的 – Andy

+0

在這裏不使用它們的一個特殊原因是我不希望數據顯示在每行都具有相同編號的網格中(和佈局)的細胞。 我想我可以爲每一行使用一張不同的表格,但我給人的印象是CSS是首選的解決方案。我可能是錯的。這就是爲什麼我在這裏問的原因:-) –

+0

對於尚未能夠直接可視化HTML/CSS代碼的noobs,這是它​​的外觀:http://jsfiddle.net/BK5Yq/1/': P' –

回答

3

不要去別人說什麼,不以使用表佈局,但是當涉及到表格數據,如果你使用div的製作表沒有任何意義,我,只是不使用表設計的佈局,但如果你想使用你可以參考this

+0

Alien先生,我遵循了你的建議。我將兩行寫成單獨的表格,因爲它們有不同的佈局。當我使用'border-collapse'時,除了一件事情之外,一切都是完美的:兩行之間有一個雙邊框(因爲它們是獨立的元素,每個都有自己的邊框)。我想我可以忽略頂行的底部邊界,但這有點難看;你能推薦更好的東西嗎? –

+0

爲什麼兩行用於單獨的佈局?使用colspan和rowspans –

+0

假設,爲了討論的緣故,我想創建一個600px寬的表格。第一行是三個單元格,每個寬度爲200px,第二行是兩個單元格,每個寬度爲300px。我知道沒有辦法做到這一點,沒有爲每一行使用單獨的「表」標籤。如果你知道的更好,請賜教。 –

1

順便說一句,要回答這個問題你應該使用它表格數據

還是......你可以使用display:table, table-cell and table-row (在CSS3中)

但我同意先生。外星人:只使用表格來表格數據。

1

見HTML元素的高度是基於它們內部的內容計算,除非你明確的指定。

您的第二個div僅佔用顯示ABC所需的高度,因此邊框只顯示了很多。爲了解決這個問題,你必須爲每個div指定一個特定的高度,以便它們按照你的想法出現。

如果你想顯示在一個表格形式的數據只是使用表。他們只是爲了那個目的。你可以明顯地設計它們,以便讓它們更好看。

+0

檢查小提琴的代碼。 http://jsfiddle.net/jNqhw/ –

0

如果你想爲表格數據做這件事,那麼通過所有的手段使用表這就是它的目的。不這樣做就像嘗試使用Photoshop製作電子表格時Excel是更好的工具。

您可以更改單元格使用colspan屬性佔用的列數。默認情況下,單元格佔用1列(colspan="1"),但如果您需要佔用更多,則只需更改編號。你可以對rowspan的行做同樣的事情。