目錄
鑰匙要點
視口單元確保.UI容器始終像瀏覽器的視口一樣高。
結論
>如何使用CSS網格和Flexbox創建類似Trello的佈局?
>使用CSS網格和Flexbox創建類似Trello的佈局,涉及多個步驟。首先,您需要為佈局創建基本的HTML結構。這包括為您的董事會和單個容器創建列表和卡的容器。接下來,您將CSS網格應用於板容器以創建網格佈局。然後,您可以使用FlexBox在其各自的容器中排列列表和卡。這使您可以創建一個響應迅速,靈活的佈局,可以容納任何數量的列表和卡片。
我可以使用CSS網格和Flexbox創建其他類型的佈局嗎?網格和Flexbox是通用的佈局系統,可用於創建各種佈局。它們可以單獨或組合使用以創建複雜的響應式佈局。無論您是創建簡單的兩列佈局還是複雜的網格佈局,CSS網格和Flexbox都可以提供所需的工具。
>使用CSS網格和Flexbox響應類似Trello的佈局涉及使用媒體查詢根據屏幕尺寸調整佈局。您可以使用媒體查詢來更改網格列的數量,也可以調整列表和卡片的flex屬性。這允許您的佈局適應不同的屏幕尺寸和方向,從而確保在所有設備上都具有一致的用戶體驗。
>使用CSS網格和Flexbox創建類似trello的佈局有任何限制嗎?
我可以使用CSS網格和Flexbox創建類似Trello的佈局而沒有任何先前的經驗? 🎜>雖然CSS網格和Flexbox是相對高級的CSS功能,但可以通過一些研究和實踐來學習。在線有許多資源,包括教程和指南,可以幫助您學習如何使用這些功能。有了一些時間和精力,即使您是初學者,您也可以使用CSS網格和Flexbox創建類似Trello的佈局。
>如何優化類似trello的佈局以進行性能?性能的類似Trello的佈局可能涉及多種策略。這包括使用高效的CSS選擇器最大程度地減少CSS和JavaScript,並優化圖像。您還可以使用諸如Google Lighthouse之類的性能工具來分析您的佈局並確定改進的區域。
首頁 web前端 css教學 用CSS網格和Flexbox構建特雷洛佈局

用CSS網格和Flexbox構建特雷洛佈局

Feb 16, 2025 pm 01:10 PM

用CSS網格和Flexbox構建特雷洛佈局

鑰匙要點

  • >教程演示瞭如何使用CSS網格和Flexbox實現Trello板的基本佈局,從而提供了響應迅速的僅CSS的解決方案。佈局由應用程序欄,板欄和包含卡列表的部分組成。
  • >教程說明瞭如何使用3×1網格構建佈局結構,前兩個行具有固定高度,第三排跨越了可用的視口高度。它還使用視口單元來確保容器始終與瀏覽器的視口一樣高。
  • >教程顯示瞭如何使用完整的視口寬度Flexbox單線行容器來格式化卡列表。它還演示瞭如何使用Overflow-X屬性在列表不符合視口寬度時在屏幕底部顯示水平滾動條。 >
  • >教程建議將最大高度約束應用於內部無序列表以管理列表的高度。它還說明瞭如何使列表與父容器一樣高,以及僅在需要時使用溢出Y屬性來顯示scrollbar。
  • 在本教程中,我將引導您完成Trello板屏幕的基本佈局的實現(請參見此處的示例)。這是一個響應迅速的,僅CSS的解決方案,只有佈局的結構特徵才能開發出來。
  • 對於預覽,這是最終結果的編碼epen演示。
  • 除了網格佈局和Flexbox外,該解決方案還採用了計算和視口單元。為了使代碼更加可讀性和高效,我還將利用SASS變量。
>沒有提供後備,因此請確保在支持瀏覽器中運行代碼。毫無疑問,讓我們深入研究,開發屏幕組件一個一個。

屏幕佈局

> Trello板的屏幕由應用程序欄,一個板欄和包含卡列表的部分組成。我將使用以下標記骨架來構建此結構:

用CSS網格和Flexbox構建特雷洛佈局

將通過CSS網格實現此佈局。具體而言,一個3×1網格(即一列和三行)。第一行將用於應用程序欄,第二行是董事會欄,第三行是.LAM元素。

前兩行的高度固定,而第三行將跨越可用的視口高度的其餘部分:

視口單元確保.UI容器始終像瀏覽器的視口一樣高。

>將網格格式上下文分配給容器,並定義了上面指定的網格行和列。更確切地說,僅由於沒有需要聲明唯一的列而定義行。行的尺寸是用桿高度和FR單元的幾個SASS變量完成的,以使列表元素的高度跨越可用的視口高。

卡列表部分

>

>如前所述,屏幕網格的第三行託管卡列表的容器。這是其標記的概述:

<span><span><span><div</span> class<span>="ui"</span>></span>
</span>  <span><span><span><nav</span> class<span>="navbar app"</span>></span>...<span><span></nav</span>></span>
</span>  <span><span><span><nav</span> class<span>="navbar board"</span>></span>...<span><span></nav</span>></span>
</span>  <span><span><span><div</span> class<span>="lists"</span>></span>
</span>    <span><span><span><div</span> class<span>="list"</span>></span>
</span>      <span><span><span><header</span>></span>...<span><span></header</span>></span>
</span>      <span><span><span><ul</span>></span>
</span>        <span><span><span><li</span>></span>...<span><span></li</span>></span>
</span>        ...
        <span><span><span><li</span>></span>...<span><span></li</span>></span>
</span>      <span><span><span></ul</span>></span>
</span>      <span><span><span><footer</span>></span>...<span><span></footer</span>></span>
</span>    <span><span><span></div</span>></span>
</span>  <span><span><span></div</span>></span>
</span><span><span><span></div</span>></span></span>
登入後複製
登入後複製
我正在使用一個完整的視口寬度flexbox單線行容器來格式化列表:

<span>.ui {
</span><span>  <span>height: 100vh;</span>
</span><span>  <span>display: grid;</span>
</span><span>  <span>grid-template-rows: $appbar-height $navbar-height 1fr;</span>
</span><span>}</span>
登入後複製
登入後複製
>將自動值分配給Overflow-X屬性會告訴瀏覽器在列表不適合視圖時列表時,在屏幕底部顯示水平滾動條。 >>>>

> flex速記屬性在flex項目上使用,以使列表

剛性

。 Flex-Basis的自動值(用於速記中)指示佈局引擎從.LIST元素的寬度屬性中讀取大小,而flex Grow和Flex-shrink的零值則阻止了此寬度的改變。 > 接下來,我需要在列表之間添加水平分離。如果設置了列表上的正確邊距,則不會渲染具有水平溢出的板上的最後一個列表之後的邊距。為了解決此問題,列表由左邊邊緣分開,最後列表和右視口緣之間的空間通過在每個.LIST元素中添加偽元素後處理:: ::。默認的flex shrink:1必須被覆蓋,否則偽元素“吸收”所有負空間,並且消失了。

請注意,在Firefox 卡列表

>每個卡列表由標頭欄,一系列卡和頁腳欄組成。以下HTML摘要捕獲了以下結構:

>至關重要的任務是如何管理列表的高度。標題和頁腳具有固定高度(不一定相等)。然後有可變數量的卡,每張卡都有可變數量的內容。因此,列表在添加或刪除時垂直增長和收縮。

>

>但是高度不能無限期地增長,它需要具有取決於.LIST元件的高度的上限。一旦達到此限制,我希望出現一個垂直滾動條,以允許訪問溢出列表的卡。
<span><span><span><div</span> class<span>="lists"</span>></span>
</span>  <span><span><span><div</span> class<span>="list"</span>></span>
</span>    ...
  <span><span><span></div</span>></span>
</span>  ...
  <span><span><span><div</span> class<span>="list"</span>></span>
</span>    ...
  <span><span><span></div</span>></span>
</span><span><span><span></div</span>></span></span>
登入後複製
登入後複製

這聽起來像是最大高點和溢出屬性的工作。但是,如果將這些屬性應用於根容器.LINS,則一旦列表達到其最大高度,將出現滾動欄,其中包括所有元素,標頭和頁腳。以下圖顯示了左側錯誤的側邊欄,右側顯示了正確的側邊欄:

用CSS網格和Flexbox構建特雷洛佈局

>因此,讓我們將最大高度約束應用於內部

    。應該使用哪個值?標題和頁腳的高度必須從列表的高度列表母容器的高度(.LIST)中減去:

<span><span><span><div</span> class<span>="ui"</span>></span>
</span>  <span><span><span><nav</span> class<span>="navbar app"</span>></span>...<span><span></nav</span>></span>
</span>  <span><span><span><nav</span> class<span>="navbar board"</span>></span>...<span><span></nav</span>></span>
</span>  <span><span><span><div</span> class<span>="lists"</span>></span>
</span>    <span><span><span><div</span> class<span>="list"</span>></span>
</span>      <span><span><span><header</span>></span>...<span><span></header</span>></span>
</span>      <span><span><span><ul</span>></span>
</span>        <span><span><span><li</span>></span>...<span><span></li</span>></span>
</span>        ...
        <span><span><span><li</span>></span>...<span><span></li</span>></span>
</span>      <span><span><span></ul</span>></span>
</span>      <span><span><span><footer</span>></span>...<span><span></footer</span>></span>
</span>    <span><span><span></div</span>></span>
</span>  <span><span><span></div</span>></span>
</span><span><span><span></div</span>></span></span>
登入後複製
登入後複製
,但是有一個問題。百分比值並不是指列表,而是指
    元素的父母。清單,並且該元素沒有確定的高度,因此該百分比無法解決。可以通過使.LIST等清單的列表來解決:

    >

<span>.ui {
</span><span>  <span>height: 100vh;</span>
</span><span>  <span>display: grid;</span>
</span><span>  <span>grid-template-rows: $appbar-height $navbar-height 1fr;</span>
</span><span>}</span>
登入後複製
登入後複製
>以這種方式,因為.LIST總是像列表一樣高,無論其內容如何,​​其背景色屬性不能用於列表背景顏色,但是可以使用其孩子(標題,頁腳,頁板,卡片)為此目的。

>對列表高度的最後調整是必要的,以說明列表底部和視口底部邊緣之間的一些空間($ abap):

<span><span><span><div</span> class<span>="lists"</span>></span>
</span>  <span><span><span><div</span> class<span>="list"</span>></span>
</span>    ...
  <span><span><span></div</span>></span>
</span>  ...
  <span><span><span><div</span> class<span>="list"</span>></span>
</span>    ...
  <span><span><span></div</span>></span>
</span><span><span><span></div</span>></span></span>
登入後複製
登入後複製
>另外的$ scrollbar-thickness量被減去,以防止列表觸摸.LIST元素的水平滾動條。實際上,在Chrome上,此滾動條在。清單框中。也就是說,100%的值是指。清單的高度,包括滾動欄。

>

>在Firefox上,滾動欄是“附加”。清單高度之外,即100%是指不包括滾動條的名單的高度。因此,這是不需要的。結果,當可見滾動欄時,在Firefox上,列表底部邊框之間的視覺空間已達到其最大高度,滾動欄的頂部稍大。

這是此組件的相關CSS規則:

如前所述,列表背景顏色是通過將$ list-bg彩色值分配給每個名單元素的孩子的背景色屬性來渲染的。溢出Y僅在需要時顯示scrollbar。最後,將一些簡單的樣式添加到標題和頁腳中。

>
<span>.lists {
</span><span>  <span>display: flex;</span>
</span><span>  <span>overflow-x: auto;</span>
</span>  <span>> * {
</span><span>    <span>flex: 0 0 auto; // 'rigid' lists</span>
</span><span>    <span>margin-left: $gap;</span>
</span>  <span>}
</span><span>  <span>&::after {</span>
</span><span>    <span>content: '';</span>
</span><span>    <span>flex: 0 0 $gap;</span>
</span>  <span>}
</span><span>}</span>
登入後複製
修飾觸摸

單卡的HTML簡單由列表項組成:>

或,如果卡具有封面圖像:

<span><span><span><div</span> class<span>="list"</span>></span>
</span>  <span><span><span><header</span>></span>List header<span><span></header</span>></span>
</span>  <span><span><span><ul</span>></span>
</span>    <span><span><span><li</span>></span>...<span><span></li</span>></span>
</span>    ...
    <span><span><span><li</span>></span>...<span><span></li</span>></span>
</span>  <span><span><span></ul</span>></span>
</span>  <span><span><span><footer</span>></span>Add a card...<span><span></footer</span>></span>
</span><span><span><span></div</span>></span></span>
登入後複製
這是相關的CSS:

<span>ul {
</span><span>  <span>max-height: calc(100% - #{$list-header-height} - #{$list-footer-height});</span>
</span><span>}</span>
登入後複製
設置了背景,填充和底部邊緣後,就可以準備好封面圖像佈局。圖像寬度必須從左側填充邊緣到右填充邊緣的整個卡範圍:

然後,分配負邊緣以水平和垂直對齊圖像:

<span><span>.list</span> {
</span>  <span>height: 100%;
</span><span>}</span>
登入後複製
第三個正保證金值照顧封面圖像和卡文本之間的空間。

>最後,我在佔據屏幕佈局第一行的兩個條上添加了一個flex格式上下文。但是他們只是素描。通過擴展演示,可以隨意建立自己的實施。

結論

這只是完成此設計的一種可能方法,看到其他方法很有趣。另外,最終確定佈局將很不錯,例如完成兩個屏幕欄。

>另一個潛在的增強可能是對卡列表的自定義滾動條的實現。

因此,請隨時在下面的討論中分叉演示並發布鏈接。

經常詢問的問題(常見問題解答)有關使用CSS網格和Flexbox

構建Trello佈局

>如何使用CSS網格和Flexbox創建類似Trello的佈局?

>使用CSS網格和Flexbox創建類似Trello的佈局,涉及多個步驟。首先,您需要為佈局創建基本的HTML結構。這包括為您的董事會和單個容器創建列表和卡的容器。接下來,您將CSS網格應用於板容器以創建網格佈局。然後,您可以使用FlexBox在其各自的容器中排列列表和卡。這使您可以創建一個響應迅速,靈活的佈局,可以容納任何數量的列表和卡片。

>

>使用CSS Grid和Flexbox創建類似Trello的佈局有什麼好處? CSS網格和Flexbox為創建類似trello的佈局提供了一些好處。它們允許您創建一個響應迅速的佈局,該佈局可以適應不同的屏幕尺寸和方向。他們還提供了一個靈活的佈局系統,可以容納任何數量的列表和卡。此外,它們提供了強大的對齊和分配控件,使創建乾淨,有條理的佈局變得容易。

我可以使用CSS網格和Flexbox創建其他類型的佈局嗎?網格和Flexbox是通用的佈局系統,可用於創建各種佈局。它們可以單獨或組合使用以創建複雜的響應式佈局。無論您是創建簡單的兩列佈局還是複雜的網格佈局,CSS網格和Flexbox都可以提供所需的工具。

>

如何使用CSS網格和Flexbox使我的類似Trello的佈局響應?

>

>使用CSS網格和Flexbox響應類似Trello的佈局涉及使用媒體查詢根據屏幕尺寸調整佈局。您可以使用媒體查詢來更改網格列的數量,也可以調整列表和卡片的flex屬性。這允許您的佈局適應不同的屏幕尺寸和方向,從而確保在所有設備上都具有一致的用戶體驗。

如何在類似trello的佈局中添加互動率?

使用JavaScript可以實現類似trello的佈局。您可以使用JavaScript將拖放功能添加到卡中,從而使用戶可以在列表之間移動卡。您也可以使用JavaScript添加其他交互式功能,例如添加新卡或列表的功能。

>使用CSS網格和Flexbox創建類似trello的佈局有任何限制嗎?

>

>,而CSS網格和Flexbox是強大的佈局系統,它們確實有一些限制。例如,在較舊的瀏覽器中,它們可能不會得到完全支持。此外,儘管它們提供了靈活的佈局系統,但它們可能不適合所有類型的佈局。重要的是要了解這些限制並在必要時考慮替代解決方案。

>我如何自定義類似trello的佈局的外觀?

>自定義可以完成類似trello的佈局的外觀使用CSS。您可以使用CSS更改佈局的顏色,字體和其他視覺元素。您還可以使用CSS添加效果,例如陰影或過渡,以增強用戶體驗。

我可以使用CSS網格和Flexbox創建類似Trello的佈局而沒有任何先前的經驗? 🎜>雖然CSS網格和Flexbox是相對高級的CSS功能,但可以通過一些研究和實踐來學習。在線有許多資源,包括教程和指南,可以幫助您學習如何使用這些功能。有了一些時間和精力,即使您是初學者,您也可以使用CSS網格和Flexbox創建類似Trello的佈局。

>

>如何使用類似trello的佈局來解決問題? >>使用瀏覽器中的開發人員工具可以完成類似Trello的佈局的故障排除問題。這些工具使您可以檢查HTML和CSS,從而更容易識別和解決問題。您還可以使用在線論壇或社區(例如堆棧溢出)來提出問題並從其他開發人員那裡獲得幫助。

>

>如何優化類似trello的佈局以進行性能?性能的類似Trello的佈局可能涉及多種策略。這包括使用高效的CSS選擇器最大程度地減少CSS和JavaScript,並優化圖像。您還可以使用諸如Google Lighthouse之類的性能工具來分析您的佈局並確定改進的區域。

以上是用CSS網格和Flexbox構建特雷洛佈局的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

靜態表單提供商的比較 靜態表單提供商的比較 Apr 16, 2025 am 11:20 AM

讓我們嘗試在這裡造成一個術語:“靜態表單提供商”。你帶上html

每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom 每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom Apr 17, 2025 am 10:55 AM

在本週的平台新聞綜述中,Chrome引入了一個用於加載的新屬性,Web開發人員的可訪問性規範以及BBC Move

與部分元素的交易 與部分元素的交易 Apr 12, 2025 am 11:39 AM

同一天發表了兩篇文章:

多腳步滑塊:一般案例 多腳步滑塊:一般案例 Apr 12, 2025 am 10:52 AM

這個兩部分系列的第一部分詳細介紹了我們如何獲得兩次跑步的滑塊。現在,我們&#039;

帶有HTML對話框元素的一些動手 帶有HTML對話框元素的一些動手 Apr 16, 2025 am 11:33 AM

這是我第一次查看HTML元素。我已經意識到了一段時間,但是尚未將其旋轉。它很酷,

我們如何標記Google字體並創建Goofonts.com 我們如何標記Google字體並創建Goofonts.com Apr 12, 2025 pm 12:02 PM

Goofonts是由開發人員和設計師丈夫簽名的附帶項目,它們都是版式的忠實擁護者。我們一直在標記Google

它全部都在頭上:管理帶有React頭盔的React Power Site的文檔頭 它全部都在頭上:管理帶有React頭盔的React Power Site的文檔頭 Apr 15, 2025 am 11:01 AM

該文檔負責人可能不是網站上最迷人的部分,但是其中所處的內容對於您的網站的成功也一樣重要

See all articles