我試圖創建一個CSS fluid tab menu
,具有可變數量的選項卡(類似於在Windows中可以看到的選項卡,其中根據包含的標題的長度進行擴展,請參見下文)。如何使水平元素擴大以覆蓋可用空間?
下面是一個例子,我有安裝(我需要保持元素結構):
<div class="test">
<div class="element">
<h3>
<span class="dummy-a">
<span class="dummy-ui-btn-inner">
<span class="dummy-ui-btn-text">very long text is this</span>
</span>
</span>
</h3>
</div>
<div class="element">
<h3>
<span class="dummy-a">
<span class="dummy-ui-btn-inner">
<span class="dummy-ui-btn-text">Two</span>
</span>
</span>
</h3>
</div>
<div class="element">
<h3>
<span class="dummy-a">
<span class="dummy-ui-btn-inner">
<span class="dummy-ui-btn-text">Three</span>
</span>
</span>
</h3>
</div>
<div class="element">
<h3>
<span class="dummy-a">
<span class="dummy-ui-btn-inner">
<span class="dummy-ui-btn-text">Four</span>
</span>
</span>
</h3>
</div>
<div class="element">
<h3>
<span class="dummy-a">
<span class="dummy-ui-btn-inner">
<span class="dummy-ui-btn-text">Five</span>
</span>
</span>
</h3>
</div>
</div>
和CSS:
.test { width: 100%; display: table; }
.test .element { border: 1px solid red; float: left; min-width: 19%; }
.test .element.prelast { border: 1px solid green; }
.test .element.last { float: none !important; overflow: hidden; }
.test .element h3 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
這將創建下列內容:
當我縮小屏幕,菜單休息多行與最後一個元素填充剩餘寬度:
我的問題是擴大的要素中的「第一排」覆蓋可用空間一次菜單中斷。簡單地設置min-width: 19%
就是問題,但我無法獲得任何工作。
問題:
我將如何讓元素「行」(這是不是一個真正的行,如果把它分成多行)佔用僅使用CSS的所有可用空間?
編輯:
Here是顯示我的意思採樣頁面。縮小瀏覽器窗口並查看元素的行爲。我正在尋找一種方法來使第一行在完成寬度後展開爲多行。
UPDATE:
我更新了示例頁面。見here。我不會在擴展元素時遇到任何問題,但它們都是「一行」。當行「分解」成多行時,問題就開始了。我想知道是否有可能通過在屏幕上展開所有元素來填補右上方的空白。
這裏有兩個額外的屏幕截圖。
所以旁邊的元素的差距「四」需要關閉
現在的差距旁邊的元素「三公」需要關閉。你可以看到它在設置元素「Four」時不起作用,因爲它不會始終位於右上角位置。相反,它應該是我設置所有元素的CSS規則(我猜)。
此外,如果這可以很容易地使用JavaScript/JQuery的,我也會聽取想法?
感謝您的幫助!
你會好起來的,使用一些JavaScript? – Chris
是的,我猜。前進。 – frequent