這篇文章介紹了Grid Layout的網格代,文章中將會介紹製作固定寬度的網格的程式碼,但在建立響應式頁面時,則可以將網格的寬度與頁面或顯示區域的剩餘寬度相符。
在本文中,我們將介紹在頁面寬度和顯示寬度是回應的情況下,根據顯示的寬度來表示網格單元格的寬度的程式碼。
我們首先要知道的是,如果要建立一個回應網格單元,可以使用fr單位。
我們來看特定的實例
程式碼如下:
#SimpleGridPxFr.css
.Container { display: grid; grid-template-columns: 160px 160px 160px 1fr; grid-template-rows: 120px 120px; border:solid #ff6a00 1px; } .GridItem1 { grid-column: 1 / 2; grid-row: 1 / 2; background-color: #ff9c9c; } .GridItem2 { grid-column: 2 / 3; grid-row: 1 / 2; background-color: #ffcb70; } .GridItem3 { grid-column: 3 / 4; grid-row: 1 / 2; background-color: #fffd70; } .GridItem4 { grid-column: 4 / 5; grid-row: 1 / 2; background-color: #b0ff70; } .GridItem5 { grid-column: 1 / 2; grid-row: 2 / 3; background-color: #7ee68d; } .GridItem6 { grid-column: 2 / 3; grid-row: 2 / 3; background-color: #7ee6e2; } .GridItem7 { grid-column: 3 / 4; grid-row: 2 / 3; background-color:#95a7f5; } .GridItem8 { grid-column: 4 / 5; grid-row: 2 / 3; background-color: #d095f5; }
SimpleGridPxFr.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <link rel="stylesheet" href="SimpleGridPxFr.css" /> </head> <body> <div class="Container"> <div class="GridItem1">内容1</div> <div class="GridItem2">内容2</div> <div class="GridItem3">内容3</div> <div class="GridItem4">内容4</div> <div class="GridItem5">内容5</div> <div class="GridItem6">内容6</div> <div class="GridItem7">内容7</div> <div class="GridItem8">内容8</div> </div> </body> </html>
說明:
Container類別的程式碼如下。網格的佈局是4列2行。從第1列到第三列的網格是160像素的固定寬度的單元格。第4列的最右邊的儲存格是被指定為1 fr,因此它變成剩餘顯示寬度的寬度。
.Container { display: grid; grid-template-columns: 160px 160px 160px 1fr; grid-template-rows: 120px 120px; border:solid #ff6a00 1px; }
運行結果
使用網頁瀏覽器顯示上述HTML檔案。顯示如下圖所示的效果。顯示網格左側的三列,寬度為160像素,第四個單元格顯示頁面寬度的剩餘寬度。
縮小網頁瀏覽器的視窗寬度。左側的三列固定為160像素的寬度。最右邊的第四列單元格的寬度會根據視窗寬度而收縮。
第四列中的單元格的寬度會根據視窗寬度變窄,但不小於最小寬度。如果從最小寬度減少視窗寬度,將顯示水平捲軸。
當有多個fr的單元格時的範例
#程式碼如下
.Container { display: grid; grid-template-columns: 160px 2fr 16em 1fr; grid-template-rows: 120px 120px; border:solid #ff6a00 1px; } .GridItem1 { grid-column: 1 / 2; grid-row: 1 / 2; background-color: #ff9c9c; } .GridItem2 { grid-column: 2 / 3; grid-row: 1 / 2; background-color: #ffcb70; } .GridItem3 { grid-column: 3 / 4; grid-row: 1 / 2; background-color: #fffd70; } .GridItem4 { grid-column: 4 / 5; grid-row: 1 / 2; background-color: #b0ff70; } .GridItem5 { grid-column: 1 / 2; grid-row: 2 / 3; background-color: #7ee68d; } .GridItem6 { grid-column: 2 / 3; grid-row: 2 / 3; background-color: #7ee6e2; } .GridItem7 { grid-column: 3 / 4; grid-row: 2 / 3; background-color:#95a7f5 } .GridItem8 { grid-column: 4 / 5; grid-row: 2 / 3; background-color: #d095f5; }SimpleGridPxEmFr.html
<!DOCTYPE html><html><head> <meta charset="utf-8" /> <title></title> <link rel="stylesheet" href="SimpleGridPxEmFr.css" /> </head> <body> <div class="Container"> <div class="GridItem1">内容1</div> <div class="GridItem2">内容2</div> <div class="GridItem3">内容3</div> <div class="GridItem4">内容4</div> <div class="GridItem5">内容5</div> <div class="GridItem6">内容6</div> <div class="GridItem7">内容7</div> <div class="GridItem8">内容8</div> </div> </body> </html>網格佈局框架的單元寬度設定為160像素,2 fr,16 em ,1 fr。由於160個像素和16個em是固定寬度,所以第一和第三列成為固定單元,第二和第四列單元格變成回應。 2fr和1fr的寬度為2:1。
.Container { display: grid; grid-template-columns: 160px 2fr 16em 1fr; grid-template-rows: 120px 120px; border:solid #ff6a00 1px; }執行結果使用網頁瀏覽器顯示上述HTML檔案。顯示如下圖所示的效果。 如果縮小視窗寬度,則fr指定的儲存格將會變窄。 對於1fr和2fr的單元,寬度以寬度變為1:2的比率收縮。
以上是網格佈局中建立響應顯示區域寬度的網格(px和fr的混合網格)的詳細內容。更多資訊請關注PHP中文網其他相關文章!