2017-10-04 25 views
1

我有一個簡單的導航如何在網格容器內構建響應式導航菜單?

<nav> 
    <ul> 
    <li><a href="">Home</a></li> 
    <li><a href="">About</a></li> 
    <li><a href="">Contact</a></li> 
    </ul> 
</nav> 

,我想其中的鏈接調整(水平)基於用戶設備上響應。這個nav放在網格容器的子網格容器(.class {display:subgrid;}不用作它的越野車)中。

CSS網格容器如下:

.container { 
    grid-template-areas: 
    "header header header header" 
    "nav nav nav nav" 
    "main main main main" 
    "footer footer footer footer" 
} 

CSS的子網格(NAV)容器如下:

.ul { 
    display: grid; 
    grid-template-areas: "home about contact"; 
    grid-template-columns: repeat(3, 1fr); 
    grid-template-rows: 25%; 
    list-style-type: none; 
    margin: 0; 
    padding: 0; 
} 

grid-template-areas相應宣稱:

.home {grid-area: home;} 
.about {grid-area: about}; 
.contact {grid-area: contact}; 

我已經修好了這個,特別是grid-template-areas,對於一些現在時間沒有進展。我不確定是否應該完全取消subgrid container或者我忽略了一個簡單的步驟。

任何援助將不勝感激!

回答

1

使用CSS網格進行整體佈局很有意義。

使用CSS Grid作爲簡單的導航菜單雖然可行,但可能會過度。有一個更簡單的方法來實現這個目標:Flexbox。

讓您nav電網項目還Flex容器:

nav { 
 
    display: flex; 
 
    height: 50px; /* non-essential; for demo only */ 
 
} 
 

 
/* non-essential; for demo only */ 
 
a { 
 
    flex: 1; 
 
    border: 1px solid gray; 
 
    background-color: lightgray; 
 
    display: flex; 
 
    align-items: center; 
 
    justify-content: center; 
 
    text-decoration: none; 
 
}
<nav> 
 
    <a href="">Home</a> 
 
    <a href="">About</a> 
 
    <a href="">Contact</a> 
 
</nav>

+1

我很感謝您的回覆。我根據您的建議修改了我的代碼,但沒有獲得積極的結果。我以爲我的電腦是行動越野車,所以我剝奪了除導航之外的任何東西的整個項目,它確實是響應式的。因此,我確認應用的javascript的功能,這讓我想知道是否應該在主容器(display:grid)外放置

+0

我發現了一個使用gridlex(flexbox-grid系統)的臨時解決方案。當'display:grid'時,