2014-02-28 456 views
3

這裏是我的HTML:Div的內部溢出= 「自動」 來自動調整大小寬度其內容

<div class="scrollingBox"> 
    <div class="container"> 
     <div class="item">Item</div> 
     <div class="item">Item</div> 
     <div class="item">Item</div> 
     <div class="item">Item</div> 
    </div> 
</div 

這裏是我的CSS:

.scrollingBox { 
    height:100px; 
    width:300px; 
    overflow:auto; 
} 
.item { 
    float:left; 
    height:60px; 
    margin:5px; 
    width:100px; 
} 

.container可以包含任何數量的.item s。

我現在的問題是.container將永遠不會比.scrollingBox更寬,並且滾動框以垂直滾動條結束,並且垂直堆疊結束。我給.container固定的高度,但是.item s垂直堆疊超出此固定高度。

我想.container沒有固定的寬度,所以它可以採取任何數量的項目。我想滾動條是水平的,我也想要.items水平堆疊。

我的問題:

我申請.container什麼CSS使.item的堆棧水平?

+0

'.tems'應該相互挨在一起,直到達到'.scrollingBox'的末尾,所以基本上應該有3個項目在它們之前相互分開。你是否希望每個項目都在一行,並且只要有3個以上的項目,滾動框就會有一個水平滾動條? –

+0

@NicoO幾乎是 – Jimmery

+0

然後你有你的答案在下面。祝你好運。 –

回答

6

通過使用float屬性,所述元件從文檔正常流中去除。

你可以改變它們的顯示類型inline-block也讓他們在在線流量,並使用white-space: nowrap;的容器(.scrollingBox),以確保每個人旁邊的內聯項目,如下

在這裏你去:

.scrollingBox { 
    height:100px; 
    width:300px; 
    overflow:auto; 
    white-space: nowrap; /* Suppress line breaks */ 
} 
.item { 
    display: inline-block; /* Display the items as inline-block   */ 
    vertical-align: top; /* Align the inline items vertically at the top */ 
    height:60px; 
    width:100px; 
} 

WORKING DEMO

注意:您可以參考my answer刪除內嵌塊元素之間的空白區域。

1

添加display:inline-block.item
默認displayDIV s是block,這導致垂直堆疊,但display:inline-block使所有DIV s到安排他們自己在一個水平線上

的變體光盤顯示選項的差異:

內聯元素:

  • 左尊右&邊距和填充,但頂部&底部
  • 不能的寬度和高度設置
  • 允許其他元素坐到他們的左側和右側。

塊元素:

  • 尊重所有這些
  • 塊元件後強制換行

直列塊元素:

  • 允許其他元件坐在其左和右
  • 尊重頂部&底部邊距和填充
  • 尊重高度和寬度。

Oldskool answer
更多信息導出W3schools

相關問題