2013-03-23 21 views
3

我正在試圖建立一個divs表。表格應該很長,所以我必須使用overflow auto/hidden。使用div溢出構建長表。 (twitter-bootstrap)

下面是結果http://jsfiddle.net/gj7vm/

問題是,當我嘗試添加標題爲.group格,一切突然崩裂(http://jsfiddle.net/ata5U/1/)。 (每個.group div應該包含其他div,就像表一樣,但是這裏我只是從簡單的.title div開始,它應該有固定的高度)

這怎麼解決? 另外,有沒有什麼好的例子,類似於我想要構建的東西(一個長的HTML表格,溢出:hidden/auto)?

回答

3

如果你想用div創建表格,爲什麼不使用CSS表格顯示值?他們會讓你的div像表格單元格一樣行事。

下面是CSS的例子:

div#screen { 
    height: 120px; 
    display: table; 
} 
#screen .row { 
    display: table-row; 
} 
.group { 
    width: 400px; 
    height: 100px; 
    color: #468847; 
    background-color: #dff0d8; 
    border-color: #d6e9c6; 
    display: table-cell; 
} 

和HTML:

<div id="screen" class="well well-large"> 
    <div class="row"> 
    <div class="group"> 
     <div class="group-title">foobar</div> 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque et diam risus. Proin eu pellentesque massa. Sed non turpis nunc, ultrices lacinia risus. Nunc et massa nec nulla commodo fermentum. Ut sit amet est id erat auctor pellentesque id non neque. Aliquam lacinia luctus condimentum. Phasellus fringilla metus at lectus auctor venenatis. Phasellus nec nulla at risus elementum feugiat ut sit amet tortor. Mauris egestas sapien non purus eleifend suscipit. Cras tortor metus, porta ac ultrices eget, sagittis a augue. Nullam facilisis, lacus iaculis condimentum placerat, mi metus pretium justo, a scelerisque enim felis id eros. Integer dictum, mi et posuere dapibus, risus ante ullamcorper tortor, sit amet adipiscing libero massa ut neque. 
    </div> 
    <div class="group"> 
     <div class="group-title">foobar</div> 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque et diam risus. Proin eu pellentesque massa. Sed non turpis nunc, ultrices lacinia risus. Nunc et massa nec nulla commodo fermentum. Ut sit amet est id erat auctor pellentesque id non neque. Aliquam lacinia luctus condimentum. Phasellus fringilla metus at lectus auctor venenatis. Phasellus nec nulla at risus elementum feugiat ut sit amet tortor. Mauris egestas sapien non purus eleifend suscipit. Cras tortor metus, porta ac ultrices eget, sagittis a augue. Nullam facilisis, lacus iaculis condimentum placerat, mi metus pretium justo, a scelerisque enim felis id eros. Integer dictum, mi et posuere dapibus, risus ante ullamcorper tortor, sit amet adipiscing libero massa ut neque. </div> 
    <div class="group"> 
     <div class="group-title">foobar</div> 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque et diam risus. Proin eu pellentesque massa. Sed non turpis nunc, ultrices lacinia risus. Nunc et massa nec nulla commodo fermentum. Ut sit amet est id erat auctor pellentesque id non neque. Aliquam lacinia luctus condimentum. Phasellus fringilla metus at lectus auctor venenatis. Phasellus nec nulla at risus elementum feugiat ut sit amet tortor. Mauris egestas sapien non purus eleifend suscipit. Cras tortor metus, porta ac ultrices eget, sagittis a augue. Nullam facilisis, lacus iaculis condimentum placerat, mi metus pretium justo, a scelerisque enim felis id eros. Integer dictum, mi et posuere dapibus, risus ante ullamcorper tortor, sit amet adipiscing libero massa ut neque. 
    </div> 
    </div> 
</div> 

這裏有一個小提琴:http://jsfiddle.net/8g8sW/1/

當你使用這些,你不需要溢出: auto,因爲div會像表格單元一樣工作,並自動拉伸以適應其內容。

欲瞭解更多信息:http://www.vanseodesign.com/css/tables/

如果有,你不希望使用CSS表(例如瀏覽器支持)的理由,請這麼說,但他們似乎喜歡這樣做的最簡單,最明顯的選擇。

+0

謝謝你的回答。核心點溢出:auto/hidden,因爲它會是非常長的表(2000-3000px),每行的高度應該是固定的(大約20-30px)。所以我不能依賴這個解決方案,不過謝謝你+1。 – evfwcqcg 2013-03-23 18:19:44

+0

因此,一行中的每個「表格單元格」.group組必須是固定的高度。這是否意味着.group需要設置爲溢出:隱藏? .group divs中的文本是否包裝,還是應該全部放在一行上?包含div #screen需要自動拉伸以適應所有行,但行本身有溢出:隱藏。那是對的嗎?我試圖想象你在這裏做什麼。 – frostyterrier 2013-03-23 19:50:30

+0

不知何故,我幾乎設法得到它「正確」(http://jsfiddle.net/cPUNt/)。基本上,我唯一需要'overflow:hidden'的地方就是'#screen' div。因爲這個div包含表格(我試圖用div創建),並且我想隱藏表格的其餘部分,因爲它很長。但單元格里面沒有任何文字。我稍後將使用它們來顯示時間間隔(通過突出顯示匹配的單元格)。我對當前的解決方案很滿意,除了我必須爲父元素計算「寬度」。 – evfwcqcg 2013-03-23 20:42:14