DigtalBloomStudio

CssGrid

top画像

display:grid

標準状態

box1
box2
box3
box4
  
  HTML

  /* CssGrid:使用するには囲む必要がある */
  <div class="container">
    <div class="box">box</div>
    <div class="box">box</div>
    <div class="box">box</div>
  </div>

  css

  .box {
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  }

  .countainer {
  display: grid;
  }
  

grid-template-columns

box1
box2
box3
box4
  
  .countainer-columns {
  display: grid;
  grid-template-columns: 100px 100px 100px 100px;  /* 子供の要素に対してwidth指定可能 */
  }
  

grid-template-columns

+

justify-content:center

要素を中央に配置

box1
box2
box3
box4
  
    .countainer-columns1 {
    display: grid;
    grid-template-columns: 100px 100px 100px 100px;
    justify-content: center; /* 子供の要素を中央に配置 */
    }
  

grid-template-columns:(2)

box1
box2
box3
box4
  
  .countainer-columns2 {
  display: grid;
  /*  子供の要素(3子供)に対してwidth指定して、残りの子供はコラムして表示される */
  grid-template-columns: 100px 100px 100px;
  }
  

grid-template-columns:(3)

[1fr][2fr]など画面幅に対して変化

box1
box2
box3
box4
  
  .countainer-columns-fr {
  display: grid;
  grid-template-columns: 100px 1fr 100px;  /* 1fr=100pxの余った部分を全て占領する */
  }
  

grid-template-columns:(4)

box1
box2
box3
box4
  
  .countainer-columns-fr4 {
  display: grid;
  grid-template-columns: 100px 1fr 100px 1fr;  /*  1fr=100pxの余った部分を全て占領する  */
  }
  

各子要素

grid-template-rows:

2列目の大きさなどを指定可能

box1
box2
box3
box4
  
  .countainer-child-rows {
  display: grid;
  grid-template-columns: 100px 100px 100px;

                    /*width height */
  grid-template-rows: 100px 200px ;       /*  2個目の折り返しのheight200pxになる  */
  }
  

grid-template-rows:(1fr)

heightを使用すると(1fr)使用可能

box1
box2
box3
box4
  
  .countainer-child-rows-1fr {
  display: grid;
  grid-template-columns: 100px 100px 100px;

  /*  2個目の折り返しのところが(1fr)になる  */
  grid-template-rows: 100px 1fr ;

  /* (1fr)使用するには、heightが指定していないといけない */
  height: 500px;
  border: 1px solid black;
  }
  

grid-template-rows:(1fr)-colum

heightを使用すると(1fr)使用可能

box1
box2
box3
box4
  
  .countainer-child-rows-1fr-culum {
  display: grid;
  grid-template-columns: 100px 100px 100px;
  grid-template-rows: 100px 1fr ;
  height: 500px;
  grid-auto-flow: column;    /* colum */
  }
  

order(全てに記載)

並び順変更

box5
box6
box7
box8
  
  .countainer-child-order {
  display: grid;
  grid-template-columns: 100px 100px 100px 100px;
  }

  .box5 {
  order: 5;     /* order */
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  }

  .box6 {
  order: 8;    /* order */
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  } 

  .box7 {   
  order: 7;    /* order */
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  }
    
  .box8 {
  order: 6;    /* order */
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  }
  

grid-colum()

セル間設定可能

ベースに考える

box100
box200
box300
box400
  
  HTML

  <div class="countainer-child-columns">
    <div class="box100">box100</div>
    <div class="box200">box200</div>
    <div class="box300">box300</div>
    <div class="box400">box400</div>
  </div>

  CSS
  
  .countainer-child-columns {
  display: grid;
  grid-template-columns: 100px 100px 100px;
  grid-template-rows: 100px 200px;
  height: 500px;
  border: 2px solid blue;
  }

  .box100 {
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  }

  .box200 {
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  }

  .box300 {
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  }

  .box400 {
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  }
  

grid-colum: 1/4;

1/4=>1(スタート)2(ゴール)===2/4:3/4:などで「BOX500」変化

box100
box200
box300
box500
  
  .box500 {
  /* grid-column: 1/4=(1)スタート位置(2)ゴール位置 */
  grid-column: 1/4;
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  } 
  

grid-temple-area

これをベースに考える

box1
box2
box3
box4
  
  HTML

  <div class="countainer-child-grid-temple-area">
    <div class="box">box1</div>
    <div class="box">box2</div>
    <div class="box">box3</div>
    <div class="box">box4</div>
  </div>

  CSS

  .countainer-child-grid-temple-area {
  display: grid;
  }

  .box {
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  }
  

設定したarea名を入れて分割を割合指定

box1
box2
box3
box4
  
  HTML

  <div class="countainer-child-grid-temple-area1">
    <div class="box">box1</div>
    <div class="box">box2</div>
    <div class="box">box3</div>
    <div class="box">box4</div>
  </div>

  CSS

  .countainer-child-grid-temple-area1 {
  display: grid;

  /* grid-temple-area 設定したarea名を入れて分割を割合指定 */
  grid-template-areas: "area1 area1 area1""area2 area3 area3" "area4 area4 area4"
  }

  .box {
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  }
  

grid-temple-area

エリア位置を決めて分割できる(4分割)

使用頻度小

boxarea1
boxarea2
boxarea3
boxarea4
boxarea5
boxarea6
boxarea7
boxarea8
boxarea9
boxarea10
  
  .countainer-child-grid-temple-area-area {
  display: grid;
  grid-template-areas: "area1 area2 area3 area4" "area5 area5 area6 area6" "area7 area7 area7 area7""area8 area9 area10 area10"  
  }

  .boxarea1 {
  grid-area: area1;
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  }

  .boxarea2 {
  grid-area: area2;
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  }

  .boxarea3 {
  grid-area: area3;
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  }

  .boxarea4 {
  grid-area: area4;
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  }

  .boxarea5 {
  grid-area: area5;
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  }

  .boxarea6 {
  grid-area: area6;
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  }

  .boxarea7 {
  grid-area: area7;
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  }

  .boxarea8 {
  grid-area: area8;
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  }

  .boxarea9 {
  grid-area: area9;
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  }

  .boxarea10 {
  rid-area: area10;
  border: 1px solid black;
  background-color: bisque;
  text-align: center;
  }
  
Top