首頁  >  文章  >  web前端  >  網格佈局中建立響應顯示區域寬度的網格(px和fr的混合網格)

網格佈局中建立響應顯示區域寬度的網格(px和fr的混合網格)

不言
不言原創
2018-11-29 16:39:063256瀏覽

這篇文章介紹了Grid Layout的網格代,文章中將會介紹製作固定寬度的網格的程式碼,但在建立響應式頁面時,則可以將網格的寬度與頁面或顯示區域的剩餘寬度相符。

網格佈局中建立響應顯示區域寬度的網格(px和fr的混合網格)

在本文中,我們將介紹在頁面寬度和顯示寬度是回應的情況下,根據顯示的寬度來表示網格單元格的寬度的程式碼。

我們首先要知道的是,如果要建立一個回應網格單元,可以使用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像素,第四個單元格顯示頁面寬度的剩餘寬度。

網格佈局中建立響應顯示區域寬度的網格(px和fr的混合網格)

縮小網頁瀏覽器的視窗寬度。左側的三列固定為160像素的寬度。最右邊的第四列單元格的寬度會根據視窗寬度而收縮。

網格佈局中建立響應顯示區域寬度的網格(px和fr的混合網格)

網格佈局中建立響應顯示區域寬度的網格(px和fr的混合網格)


第四列中的單元格的寬度會根據視窗寬度變窄,但不小於最小寬度。如果從最小寬度減少視窗寬度,將顯示水平捲軸。

網格佈局中建立響應顯示區域寬度的網格(px和fr的混合網格)

當有多個fr的單元格時的範例

#程式碼如下

##寫以下HTML和CSS程式碼。

SimpleGridPxEmFr.css

.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檔案。顯示如下圖所示的效果。

網格佈局中建立響應顯示區域寬度的網格(px和fr的混合網格)

如果縮小視窗寬度,則fr指定的儲存格將會變窄。

網格佈局中建立響應顯示區域寬度的網格(px和fr的混合網格)

對於1fr和2fr的單元,寬度以寬度變為1:2的比率收縮。

網格佈局中建立響應顯示區域寬度的網格(px和fr的混合網格)

網格佈局中建立響應顯示區域寬度的網格(px和fr的混合網格)

以上是網格佈局中建立響應顯示區域寬度的網格(px和fr的混合網格)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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