我正在顯示一些<div>
箱爲矩形網格的一部分響應式佈局:CSS表,不同尺寸
的六盒,你可以在此頁面上看到的都是在未分組HTML源,所有在一排:
<div class="control">
<div class="controlContent">
<a>SOME VARIABLE-HEIGHT CONTENT including an image which might float</a>
</div>
</div>
的control
div的分配盒百分比寬度到第一整,然後1/2或1/3的屏幕寬度,所以他們的兩倍& tripl隨着屏幕尺寸的增加,會變成行。所述controlContent
div的分配等的填充,邊緣,背景,border-radius
等
我想象這是一個線性組箱子,符合標準的和屏幕閱讀友好,通過類似的表CSS顯示屬性。我知道CSS2.1允許元素被分配了類似的特性:
display: table;
display: table-row;
display: table-cell;
我的主要問題:我已經(通過controlContent
DIV)分配display: table-cell
這些元素防止崩潰保證金裏面的內容,但不不提供一個統一的高度給細胞樣的div。 我需要在同一行中的所有兄弟姐妹有高度匹配的方式。
較小的單元格通常在它們下面有間隙,其中漸變背景只覆蓋單元格的框高度。 (更糟糕的是,這些單元格陣列之後的文本有時會填充到這些空白中:另一個問題可以通過演示標記來修復,但在解決第一個問題時可能會消失。)
我想我理解問題的基礎:我已經告訴每個<div>
表現得像一個表格單元格無關,其高度匹配,因爲我也沒有辦法將這些元素分組到一個包含<div>
的,而我可以分配display: table-row
的性質,因爲這個分組的變化根據CSS媒體查詢。
在我關於我聽說過匿名錶盒和匿名錶行被創建,但不知道如何在這種情況下,使用它們的問題閱讀。由於我使用的CSS :nth-child()
選擇在每個新行的開始清除浮動框,我希望我也可以使用這些選擇在每一個這樣的點,以建立一個新的錶行...但如何?
我沒有結婚到任何特定的解決方案。我只想知道這樣做的最佳做法。我希望能找到不涉及表示標記的解決方案,尤其是因爲一般的解決方案應爲任意數量的小區提供快速響應的可變維度表,不只是一個小的,容易可分解號像6
有趣的是,將'table-cell'應用到div使它看起來就像JS小提琴;在狹窄的屏幕方向上,元素並排排列(離開屏幕),因爲錶行爲是填充單行直到創建新行。 Re jQuery:我想通過DOM並將div嵌套到包含div的表格中,根據屏幕寬度將表格行應用於容器。可能不適應頁面加載後屏幕大小的變化。現在我要設計箱子的樣式並忽略它們的高度差異,看看它的外觀。謝謝G! – rphair
那麼,只有當使用'display:block;'之前,只有在達到某個屏幕尺寸時才需要添加'display:table-cell;'。檢查我的編輯。 – Giona
就是這樣;我不得不在開始時添加它,以便在div內使用浮動時停止邊距摺疊,這僅發生在窄屏幕寬度。事實上,HTML5樣板中的「clearfix」使用這種方法,所以我不想分歧。我會牢記你的想法,但我還沒有能夠測試當盒子分成兩個「行」並清除浮動框時會發生什麼。表和浮動行爲之間可能存在衝突,因爲表將執行一條直線,同時清除浮動元素將建立一個新行。 – rphair