2017-10-09 16 views
0

異なるビューポートサイズのグリッド要素を表示するためにページに使用されるCSS ビューポートのサイズに基づいてグリッドとその子孫を表示するコード。画面のサイズが画面のサイズに基づいて小さくなる場合、各コンテナの列はドロップされ、モバイルモードでは単一の行が取得されます。 タブレットモードの場合、メインとサイドバーは2行目から3行目にドロップする必要があります。グリッドを使用したレスポンシブウェブデザインでメディアクエリが機能しない

body{ 
    margin: 0; 
    padding: 0; 
} 

.gridContainer{ 
    display: grid; 
    height: 100%; 

    grid-template-columns: 20% 1em 1fr 1em 20% ; 
     grid-template-rows: 4.4em 1em 1fr 1em 4.4em; 
    grid-template-areas: "header header header header header" 
     ". . . . ." 
     "navigation . mainContent . sidebar" 
     ". . . . ." 
     "footer footer footer footer footer"; 
} 
.gridHeader{ 
    grid-area: header; 
    background-color: #A62E5C; 
} 

.gridFooter{ 
    grid-area: footer; 
    background-color: #A62E5C; 
} 

.gridNav{ 
    grid-area: navigation; 
    background-color: #9BC850; 
} 

.gridMain{ 
    grid-area: mainContent; 
    background-color: #9BC850; 
} 

.gridSide{ 
    grid-area: sidebar; 
    background-color: #9BC850; 
} 

.grid-item { 
    color: #fff; 
    box-sizing: border-box; 
    font-size: 1em; 
    padding: 1em; 
    overflow: hidden; 
    text-align: center; 
} 

@media screen and (max-width: 768px) { 

    .grid-container { 
     grid: 1fr 1em 30%/4.4em 1em 3.6em 1em 1fr 1em 4.4em; 
     grid-template-areas: 
     "header header header" 
     ". . ." 
     "navigation navigation navigation" 
     ". . ." 
     "content . sidebar" 
     ". . ." 
     "footer footer footer"; 
    } 

} 

@media screen and (max-width: 480px){ 
    .gridContainer{ 
     grid: 1fr/3.6em 1em 4.6em 1em 1fr 1em 4.6em 1em 3.6em; 
     grid-template-areas: "header" 
      "." 
      "navigation" 
      "." 
      "mainContent" 
      "." 
      "sidebar" 
      "." 
      "footer"; 
    }  
} 

HTMLは、異なるビューポートのサイズ

<html> 
    <head> 
     <meta name="viewport" content="width=device-width,initial-scale=1"> 
     <title> 
      Modern Web Layout 
     </title> 
     <link rel="stylesheet" href="css/main.css" type="text/css"> 
    </head> 
    <body> 
     <main class="gridContainer"> 
     <header class="gridHeader grid-item"> 
      HEADER 
     </header> 
      <section class="gridNav grid-item"> 
       NAVIGATION AREA 
      </section> 
      <section class="gridMain grid-item"> 
       MAIN CONTENT 
      </section> 
      <section class="gridSide grid-item"> 
       SIDEBAR 
      </section> 
      <footer class="gridFooter grid-item"> 
       FOOTER 
      </footer> 
     </main> 
    </body> 
</html> 

にグリッド要素を表示するページで使用助けてください.....おかげで、事前

Codepen

+0

これまでに何を試みていないのですか? –

答えて

0

に私が実際にこれを持っていました問題は昨日だったし、それはちょうど@media screenの代わりに非常に簡単だった@media only screenうまくいけばそれはあなたのために働く!

+0

これは私の問題を解決しなかった – ManishChahal

+0

それを残念。 – Blaksky

0

タブレットレイアウトに.gridContainerの代わりに.grid-containerを使用しました。

+0

私はまだレイアウトに基づいて変更されていない変更を行った、それはいくつかのブラウザのサポートの問題(グリッドテンプレートの列とレイアウトグリッドのグリッドの代わりにグリッドテンプレート行を使用して私のために働いた)のようです。 – ManishChahal

関連する問題