使用CSS flexbox創建一個幹凈的CSS比較表
CSS和HTML比較表是一種強大的方式,可以即時向訪問者傳達您的產品的主要功能,以及它們的不同之處。通常,比較表和定價表是相同的。對我來說,比較表的不同之處在於它應該包含列出所有可用功能的額外列。這樣可以很容易地比較計劃並找出它們的不同之處。
HTML標記
對於標記,我正努力使其盡可能幹凈簡約。我決定使用外部主DIV元素,然後是一系列UL列表來呈現比較表中的每個“行”內容:
比較表必須由多個彼此堆疊的UL組成。我將使用CSS彈性框使它們的寬度相等,並以相同的速率展開和收縮,因此它們的行為與表中的行類似。
1 2 3 4 五 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 三十 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
"vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
"vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
|
每個UL中的第一個LI元素是特征/圖例。為了便於隔離和設置它們與其他包裝的不同,我給那些LI元素一個CSS類“傳奇”。
CSS:
現在是有趣的部分 - 將標記轉換為比較表。使用CSS Flexbox,轉換UL元素相對容易,因此它們在布局,彎曲和拉伸方面是水平的,因此它們更像表格單元格。
我刪除了一些不必要的行,這樣你就可以專註於下面的重要部分:
1 2 3 4 五 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 三十 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
|
“要素列表”或圖例列是每行的第一個LI元素。它的顯式寬度為200px,與其他柔性寬度的LI元素(flex:1)不同。
使比較表響應
現在,比較表沒有響應。也就是說,即使屏幕尺寸變得非常小,每行內的“列”也是並排的。
在CSS彈性框中,我們可以通過將flex-direction屬性從“row”設置為“”,將flex子元素的顯示順序從默認的“並排”行為輕松更改為“堆疊在下一個上面”。柱”。
現在在我的比較表中,UL元素本身是堆疊的,盡管子LI元素像表格中的單元格一樣並排出現。當屏幕變得足夠小時,我會將它們更改為堆疊:
1 2 3 4 五 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
現在,當我向下調整窗口大小時,比較表會折疊,每個“單元格”都會出現在它自己的行上:
已知問題
最後但並非最不重要的是,比較表存在一個小問題。當你調整它的大小時,在某些時間間隔,一些LI的寬度會變得不同步:
如果您知道解決方案,請發送電子郵件給我([email protected])。
使用CSS flexbox創建一個幹凈的CSS比較表