2016-07-04 5 views
0

これは私の最初の質問です!私は2,335日のうちに、スライドの上/下のモバイルの最初のメニューを作成するチェックボックス付きの問題enter code hereに直面しています。 チェックボックスは完全に動作していますが、チェックボックスをオンにしたときにメニューをスライドさせて実行することができません。 正しい方向へのヒントや助けをいただければ幸いです。Chechboxは泣いているがコンテンツはスライドできない

<!-- === MENUTOGGLE === --> 
<input type="checkbox" name="checkbox" id="menuToggle" value="value"> 
<label for="menuToggle" class="menu-icon">&#9776;</label> 
<!-- ==== HEADER ==== -->  
<header> 
    <div id="logo" class="brand"> 
    <h1><img src="images/logo.png" alt="Hello"></h1> 
    </div>`enter code here` 
    <nav class="menu"> 
    <ul> 
     <li><a href="#">Work</a></li> 
     <li><a href="#">About</a></li> 
     <li><a href="#">Blog </a></li> 
     <li><a href="#">Contact</a></li> 
    </ul> 
    </nav> 
</header> 

* { 
    margin: 0; 
    padding: 0; 
    outline: none; 
    box-sizing: border-box; 
} 

body { 
    background: #eee; 
    color: #444; 
    -webkit-font-smoothing: antialiased; 
    font-family: Arial, sans-serif; 
    font-weight: 400; 
    height: auto !important; 
    height: 100%; 
    min-height: 100%; 
    text-rendering: optimizeLegibility; 
} 

.menu { 
    width: 100%; 
    position: absolute; 
    top: 66px; 
} 

.menu-icon { 
    float: right; 
    color: blueviolet; 
    cursor: pointer; 
    padding-top: 25px; 
    padding-right: 30px; 
} 

#menuToggle { 
    display: none; 
} 

#menuToggle:checked + .menu { 
    position: absolute; 
    top: -66px; 
} 

#logo { 
    float: none; 
    text-align: left; 
    padding-top: 7px; 
    padding-left: 2em; 
} 

header { 
    display: block; 
    background-color: #FFF; 
} 

nav { 
    text-align: center; 
} 

nav ul { 
    background-color: rgba(255, 255, 255, 0.15); 
    float: none; 
    line-height: 3.5em; 
    margin: 0; 
} 

nav ul li { 
    display: block; 
    list-style-type: none; 
} 

nav ul li:hover { 
    background-color: rgba(171, 193, 242, 0.1); 
} 

nav ul li a { 
    text-decoration: none; 
    color: red; 
} 

nav ul li a:hover { 
    color: aqua; 
} 

/*------------ MEDIUM BIG SCREEN -----------------------*/ 

@media screen and (min-width:600px) { 
    #logo { 
    float: left; 
    } 

    .menu { 
    width: 100%; 
    height: 70px; 
    position: inherit; 
    } 

    .menu-icon { 
    display: none; 
    } 

    header { 
    height: 70px; 
    background-color: #FFF; 
    margin: auto; 
    width: 100%; 
    } 

    nav ul { 
    background-color: #FFF; 
    float: right; 
    padding: 0.55em 3em 0.55em 1.5em; 
    height: 70px; 
    } 

    nav ul li { 
    display: inline-block; 
    } 

    nav ul li a { 
    background-color: #FFF; 
    padding-left: 3em; 
    } 

答えて

0

私はあなたの数行のコードを変更しました。これが期待どおりの場合は、https://jsfiddle.net/pr7xf32q/をご確認ください。

* { 
 
    margin: 0; 
 
    padding: 0; 
 
    outline: none; 
 
    box-sizing: border-box; 
 
} 
 

 
body { 
 
    background: #eee; 
 
    color: #444; 
 
    -webkit-font-smoothing: antialiased; 
 
    font-family: Arial, sans-serif; 
 
    font-weight: 400; 
 
    height: auto !important; 
 
    height: 100%; 
 
    min-height: 100%; 
 
    text-rendering: optimizeLegibility; 
 
} 
 

 
.menu { 
 
    width: 100%; 
 
    position: absolute; 
 
    top: 66px; 
 
} 
 

 
.menu-icon { 
 
    float: right; 
 
    color: blueviolet; 
 
    cursor: pointer; 
 
    padding-top: 25px; 
 
    padding-right: 30px; 
 
} 
 

 
.menu { 
 
    display: none; 
 
} 
 

 
#menuToggle:checked ~ header .menu { 
 
    display: block; 
 
} 
 

 

 
#logo { 
 
    float: none; 
 
    text-align: left; 
 
    padding-top: 7px; 
 
    padding-left: 2em; 
 
} 
 

 
header { 
 
    display: block; 
 
    background-color: #FFF; 
 
} 
 

 
nav { 
 
    text-align: center; 
 
} 
 

 
nav ul { 
 
    background-color: rgba(255, 255, 255, 0.15); 
 
    float: none; 
 
    line-height: 3.5em; 
 
    margin: 0; 
 
} 
 

 
nav ul li { 
 
    display: block; 
 
    list-style-type: none; 
 
} 
 

 
nav ul li:hover { 
 
    background-color: rgba(171, 193, 242, 0.1); 
 
} 
 

 
nav ul li a { 
 
    text-decoration: none; 
 
    color: red; 
 
} 
 

 
nav ul li a:hover { 
 
    color: aqua; 
 
} 
 

 
/*------------ MEDIUM BIG SCREEN -----------------------*/ 
 

 
@media screen and (min-width:600px) { 
 
    #logo { 
 
    float: left; 
 
    } 
 

 
    .menu { 
 
    width: 100%; 
 
    height: 70px; 
 
    position: inherit; 
 
    display: block; 
 
    } 
 

 
    .menu-icon { 
 
    display: none; 
 
    } 
 

 

 
    header { 
 
    height: 70px; 
 
    background-color: #FFF; 
 
    margin: auto; 
 
    width: 100%; 
 
    } 
 

 
    nav ul { 
 
    background-color: #FFF; 
 
    float: right; 
 
    padding: 0.55em 3em 0.55em 1.5em; 
 
    height: 70px; 
 
    } 
 

 
    nav ul li { 
 
    display: inline-block; 
 
    } 
 

 
    nav ul li a { 
 
    background-color: #FFF; 
 
    padding-left: 3em; 
 
    }
<input type="checkbox" name="checkbox" id="menuToggle" value="value"> 
 
<label for="menuToggle" class="menu-icon">&#9776;</label> 
 
<!-- ==== HEADER ==== -->  
 
<header> 
 
    <div id="logo" class="brand"> 
 
    <h1><img src="images/logo.png" alt="Hello"></h1> 
 
    </div> 
 
    
 
    <nav class="menu"> 
 
    <ul> 
 
     <li><a href="#">Work</a></li> 
 
     <li><a href="#">About</a></li> 
 
     <li><a href="#">Blog </a></li> 
 
     <li><a href="#">Contact</a></li> 
 
    </ul> 
 
    </nav> 
 
</header>

+0

はい!そして、魔法が起こります!どうもありがとうございました!私が直面している問題はクラスメニューにありましたか?あなたがしたことを私に説明してください。私は問題を追求して2日後、私の頭の中に私がどこにいたのか、どこに行くのか理解できない数字と概念がいっぱいであると感じています。明日までそれを停止する時間。もう一度ありがとう)) –

+0

そして今、主な問題があります。モバイルの最初の応答性のために、私は、チェックボックスのプロパティをモバイルビューにのみ適用し、排他的に適用します。現在、チェックボックスをオフにすると、デスクトップビューのメニューが消えてしまい、そうしたくありません。私は答えを求めているのではなく、何を探すべきかを示しています。私はすでにjqueryを使って同じプロジェクトを行っていましたが、私はこれを純粋なhtml5とcss3にします。ありがとうございました! –

+0

うまくいきました。私は.menu {display:none;}を追加し、中規模および大規模デバイス用のメディアクエリを追加するのを忘れてしまった。 media queryのblock:を表示するようにコードを更新しました。あなたが何か説明が必要かどうかをチェックして、私に知らせてください。 – San

関連する問題